$in 上的 MongoDB 文档条件运算符不说任何关于订单的内容。如果我运行表单查询
db.things.find({'_id': {'$in': id_array}});
返回结果的顺序是什么?有没有办法告诉 MongoDB “我希望对结果进行排序,以便它们与 id_array
中的 id 的顺序相同?”
最佳答案
在 JIRA 上请求此功能:
很快就得到了很好的响应:使用 $or
代替 $in
c.find( { _id:{ $in:[ 1, 2, 0 ] } } ).toArray()
对比
c.find( { $or:[ { _id:1 }, { _id:2 }, { _id:0 } ] } ).toArray()
阅读错误报告了解更多信息。
更新:
$or work-around hack 从 2.6.x 开始不再有效 - 这是实现的副作用,具有 changed .
https://stackoverflow.com/questions/3142260/