收藏
回答

关于云数据库中所有id 中某个数组属性 里面对象中的key进行排序,怎么获取自己想要的数据?

我的目的是在数据库usersInfo中所有的id记录中,把数组content的对象key值like进行前20名从高到底排序,然后取出想要的text内容!这个思路跟代码该怎么写?看了下数据库中聚合的案例,好像不合适我这种数据结构,是可以直接取?还是把users所有id 中你的content数组进行拼接再排序,然后取出相应的text?

回答关注问题邀请回答
收藏

1 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2020-06-12

    每个_id对应的记录分别取content里like值降序的前20 ?


    ===================================

    db.collection('usersInfo').aggregate()
      .unwind('$content')
      .replaceRoot({
        newRoot: '$content'
      })
      .sort({
        'like': -1
      })
      .limit(3)
      .end()
    

    若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人

    2020-06-12
    有用 2
    回复 8
    • 修心养性
      修心养性
      2020-06-12
      不是每个id,是所有id中的content里like前20,简单来说是取数据库userInfo中,content里like前20的 text!
      2020-06-12
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2020-06-12回复修心养性
      看上面

      若认为该回答有用,给回答者点个[ ]

      2020-06-12
      2
      回复
    • 修心养性
      修心养性
      2020-06-12回复o0o有脾气的酸奶
      有用,非常感谢!但是输出的结果没有id,就不懂这个数据是属于哪个id 的!还要想办法一起返回id才行
      2020-06-12
      回复
    • 修心养性
      修心养性
      2020-06-12回复o0o有脾气的酸奶
      是应该在replaceRoot中计算一个新字段 把id弄进去还是用project解决呢?
      2020-06-12
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2020-06-12回复修心养性
      2020-06-12
      1
      回复
    查看更多(3)
登录 后发表内容
问题标签