我想要比較,排序,過濾等MongoDB ObjectIDs數組以及基於數組對文件進行排序。我的主要問題是:我應該使用ObjectID.equals()
還是可以將它們全部轉換爲字符串,使用indexOf
等本機比較,然後將它們轉換回來?有關係嗎?比較和排序Node中的MongoDB ObjectIDs - 轉換爲字符串?
我的具體用例:用戶可以將帖子保存到列表中。我將它保存爲ObjectIDs user.saves
的數組。我想按順序檢索前25個帖子,所以我查詢{_id: {$in: user.saves.slice(0, 25)}}
。你將如何整理檢索到的文件?
如果你是'$ push'ing對象到'保存()'陣,是不是已經暗示排序?你想要排序和檢索哪些文檔..你是否在另一個find()上objectIds'$ in'數組? – Stennie 2012-08-09 07:32:57
是的。除非你有更好的主意,否則唯一的方法就是逐一檢索它們。 – 2012-08-09 08:20:44
因爲我想你想按照'saved []'數組中的順序進行自定義排序,而不是你正在檢索的文檔的任何屬性,所以確實沒有太多更好的想法。可能最好是執行'$ in'查詢,然後對檢索到的結果(在您的應用程序代碼中)進行自定義排序,而不是通過'save []'順序進行迭代並執行25個查詢。 – Stennie 2012-08-15 12:55:10