MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да сортирам поддокументи в полето на масива?

MongoDB не предоставя начин да направите това извън кутията, но има заобиколно решение, което е да актуализирате вашите документи и да използвате $sort Оператор за актуализиране, за да сортирате вашия масив.

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

Все още можете да използвате .aggregate() метод като този:

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

Но това е по-малко ефективно, ако всичко, което искате, е да сортирате масива си и определено не трябва да правите това.

Винаги можете да направите тази клиентска страна, като използвате .sort или sorted функция.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да вмъкнете няколко документа наведнъж в MongoDB чрез Java

  2. MongoDB $split

  3. Как трябва да внедря тази схема в MongoDB?

  4. Mongodump от отдалечен сървър

  5. Networkx никога не приключва с изчисляването на централната централна среда за 2 mil възли