mongodb $in 排序问题

mongodb $in 排序问题?
如何按照指定的数组循序排序呢?
比如 $in:['a','b','c'] 查询出也是按a b c 这个循序
求大神指教

阅读 4.9k
2 个回答

你的意思是先用$in查找,再排序??
那你应该用aggregate

新手上路,请多包涵
ids=[3,4,5]
search_obj = {"_id": {"$in": ids}}
results = USER._get_collection().aggregate([
            {"$match": search_obj}
        ])

可以通过$indexOfArray 方法获取数组index

results = Audio._get_collection().aggregate([
    {"$match": search_obj},
    {"$project":{
        "ID":1,
        "order:{    //可以任意命名
            "$indexOfArray":[ids,"$_id"]
           }
     }},
    {"$sort":{"order":1}}
    ])

这样得到的结果就是一致的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进