MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoose:znajdź dokumenty o mieszanym schemacie z wieloma wpisami

Dzieje się tak, ponieważ zapytanie nie może pasować do żadnego dokumentu, w którym pole tablicy parameters ma dokładny obiekt tablicy jako swoją wartość [{"foo": "bar", "ding": "dong"}] . Aby to zademonstrować, wstawmy do kolekcji kilka przykładowych dokumentów:

/* 0 */
{
    "_id" : ObjectId("551d777fcfd33f4e2a61e48f"),
    "parameters" : [ 
        {
            "foo" : "bar"
        }
    ]
}

/* 1 */
{
    "_id" : ObjectId("551d777fcfd33f4e2a61e490"),
    "parameters" : [ 
        {
            "foo" : "bar",
            "ding" : "dong"
        }
    ]
}

Wysyłanie zapytania do tej kolekcji o parameters tablica z tym obiektem tablica [{"foo":"bar"}] przyniesie dokument z "_id" :ObjectId("551d777fcfd33f4e2a61e48f") . Jeśli jednak zmienisz obiekt zapytania tak, aby używał $elemMatch wtedy przyniesie oba dokumenty:

db.collection.find({"parameters": { "$elemMatch": { "foo": "bar" } }});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak mogę udostępniać kolekcje MongoDB między aplikacjami Meteor?

  2. Kiedy indeksy złożone są nadal aktualne w MongoDB 2.6, biorąc pod uwagę nową funkcję przecięcia indeksów?

  3. MongoDB i Asp Core aktualizują tylko klucz:parę wartości zamiast całego modelu

  4. Mongoid daje niezainicjowaną stałą Mongo

  5. Element tablicy aktualizacji MongoDB