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

Монго подреждане по дължина на масива

Мислех, че може да успеете да използвате $size , но това е само за намиране на масиви с определен размер, а не за подреждане.

От документацията на mongo:http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24size

Не можете да използвате $size, за да намерите диапазон от размери (например:масиви с повече от 1 елемент). Ако трябва да направите заявка за диапазон, създайте поле за допълнителен размер, което увеличавате, когато добавяте елементи. Индексите не могат да се използват за частта $size на заявка, въпреки че ако са включени други изрази на заявка, индексите могат да се използват за търсене на съвпадения в тази част от израза на заявката.

Изглежда, че вероятно можете доста лесно да направите това с новата рамка за агрегиране, редактиране: който все още не е излязъл.http://www.mongodb.org/display/DOCS/Aggregation+Framework

Актуализиране Сега рамката за агрегиране е излязла...

> db.test.aggregate([
  {$unwind: "$answers"}, 
  {$group: {_id:"$_id", answers: {$push:"$answers"}, size: {$sum:1}}}, 
  {$sort:{size:1}}]);
{
"result" : [
    {
        "_id" : ObjectId("5053b4547d820880c3469365"),
        "answers" : [
            {
                "content" : "answer1"
            },
            {
                "content" : "2nd answer"
            }
        ],
        "size" : 2
    },
    {
        "_id" : ObjectId("5053b46d7d820880c3469366"),
        "answers" : [
            {
                "content" : "answer1"
            },
            {
                "content" : "2nd answer"
            },
            {
                "content" : "The third answer"
            }
        ],
        "size" : 3
    }
  ],
  "ok" : 1
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Docker:променете папката, където да съхранявате томовете на docker

  2. Mongodb заявка с полета в същите документи

  3. BadValue Невалиден или не е зададен потребителски локал. Моля, уверете се, че променливите на средата LANG и/или LC_* са зададени правилно

  4. MongoDB да използва разделяне с $lookup оператор за агрегиране

  5. Пролетни данни Съвпадение и филтриране на вложен масив