2017-03-07 95 views
0

我想按字母順序排序節點和mongodb。這是我目前的狀況,但它不工作:NodeJS + MongoDB排序查詢

$addToSet: { 
    friends: { 
     $each: [{ 
      _id: req.body.globalUserId.toString(), 
      username: req.body.globalUserName, 
      language: req.body.globalUserLanguage, 
      profilePicture: req.body.globalUserProfilePicture 
     }], 
     $sort: {username: 1} 
    } 
} 

下面是一個例子文件:

enter image description here

,你可以在朋友數組下看到,它會「R1」,然後'一秒。因爲我希望這個數組按照字母順序排序,所以'a'會首先出現。我將如何做到這一點?非常感謝!

這是我爲這個特殊的模型架構:

username: String, 
email: String, 
password: String, 
language: { type: String, default: "English" }, 
profilePicture: { type: String, default: "/images/talk/blank-profile-picture.png" }, 
pendingFriends: [this], 
friends: [this] 
+0

您可以從您的收藏中添加示例文檔嗎? – Veeram

+0

添加更多代碼。 – Remario

+0

對!非常抱歉,添加了一些更多信息。如果需要更多信息,請告訴我 –

回答

0

集合是無序的,並出於同樣的原因$sort不支持。

$push將保持該順序。

$push: { 
    friends: { 
     $each: [{ 
      _id: req.body.globalUserId.toString(), 
      username: req.body.globalUserName, 
      language: req.body.globalUserLanguage, 
      profilePicture: req.body.globalUserProfilePicture 
     }], 
     $sort: {username: 1} 
    } 
}