2011-11-09 83 views
2

我在使用mongodb查詢中的$ in子句。不過,我希望我的結果與我在$ in子句中使用的輸入列表完全一致。

我得到的結果是按照對象的插入順序。

到目前爲止,我讀過的所有文檔都告訴我,排序遊標函數只能用於文檔字段。這是否意味着我不能做到以上?

回答

0

MongoDB不以任何特定順序插入。你可以對結果進行排序。

參見:

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24in

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); 
+0

感謝埃文。然而,在我的具體情況下,$ in查詢的列表順序是從外部派生的。所以,我真的希望我的結果按照與輸入列表中相同的任意順序排序。我試圖在id列表在其他地方排序後基於它們的id來檢索對象。 – ezennse

+1

您可能只是想在事後做到這一點。我發現任何複雜的排序最好在Web層完成,因爲它比在數據庫層中執行更便宜。 – evan

+0

謝謝埃文。這正是我現在計劃要這樣做的方式。非常感謝您的幫助。 – ezennse

相關問題