Mongodb 使用$in子句的mongo查询能否以与$in列表中相同的顺序返回结果?

Mongodb 使用$in子句的mongo查询能否以与$in列表中相同的顺序返回结果?,mongodb,Mongodb,我在mongodb查询中使用$in子句。但是,我希望结果的顺序与$in子句中使用的输入列表完全相同 我得到的结果与插入对象的顺序一致 到目前为止,我阅读的所有文档都告诉我,sort cursor函数只适用于文档字段。这是否意味着我无法执行上述操作?MongoDB不按任何特定顺序插入。不过,您可以对结果进行排序 见: MongoDB不按任何特定顺序插入。不过,您可以对结果进行排序 见: 谢谢你,埃文。但是,在我的特定情况下,$in查询的列表顺序是从外部派生的。所以,我真的希望我的结果按输入列表

我在mongodb查询中使用$in子句。但是,我希望结果的顺序与$in子句中使用的输入列表完全相同

我得到的结果与插入对象的顺序一致


到目前为止,我阅读的所有文档都告诉我,sort cursor函数只适用于文档字段。这是否意味着我无法执行上述操作?

MongoDB不按任何特定顺序插入。不过,您可以对结果进行排序

见:


MongoDB不按任何特定顺序插入。不过,您可以对结果进行排序

见:


谢谢你,埃文。但是,在我的特定情况下,$in查询的列表顺序是从外部派生的。所以,我真的希望我的结果按输入列表中相同的任意顺序排序。我正在尝试在id列表在别处排序后根据它们的id检索对象。您可能只想在事实发生后这样做。我发现任何复杂的排序都最好在web层进行,因为它比在数据库层进行更便宜。谢谢Evan。这正是我现在计划的方式。非常感谢你的帮助。谢谢埃文。但是,在我的特定情况下,$in查询的列表顺序是从外部派生的。所以,我真的希望我的结果按输入列表中相同的任意顺序排序。我正在尝试在id列表在别处排序后根据它们的id检索对象。您可能只想在事实发生后这样做。我发现任何复杂的排序都最好在web层进行,因为它比在数据库层进行更便宜。谢谢Evan。这正是我现在计划的方式。非常感谢你的帮助。
db.updates.ensureIndex( { ts : 1 } ); // ts == timestamp
var myFriends = myUserObject.friends; // let's assume this gives us an array of DBRef's of my friends
var latestUpdatesForMe = db.updates.find( { user : { $in : myFriends } } ).sort( { ts : -1 } ).limit(10);