sql >> Databáze >  >> NoSQL >> MongoDB

Jak třídit dílčí dokumenty v poli pole?

MongoDB neposkytuje způsob, jak to udělat hned po vybalení, ale existuje řešení, které spočívá v aktualizaci dokumentů a použití $sort aktualizovat operátor pro seřazení vašeho pole.

db.collection.update_many({}, {"$push": {"topics": {"$each": [], "$sort": {"weight": -1}}}})

Stále můžete použít .aggregate() metoda, jako je tato:

db.collection.aggregate([
    {"$unwind": "$topics"}, 
    {"$sort": {"_id": 1, "topics.weight": -1}}, 
    {"$group": {"_id": "$_id", "topics": {"$push": "$topics"}}}
])

Ale to je méně efektivní, pokud vše, co chcete, je třídit pole, a to byste rozhodně neměli dělat.

Tuto stranu klienta můžete vždy provést pomocí .sort nebo sorted funkce.



  1. Dotazování MongoDB/Mongoose k určitému datu?

  2. Co je Redis pubsub a jak jej mohu používat?

  3. Mac(os x):Existuje způsob, jak nainstalovat POUZE redis-cli?

  4. MongoDB find()