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

Mongoose:намерете смесени типове документи с множество записи

Това е така, защото заявката не може да съвпадне с никакви документи, където parameters на полето на масива има точния обект на масив като стойност [{"foo": "bar", "ding": "dong"}] . За да демонстрираме това, нека вмъкнем няколко примерни документа в колекция:

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

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

Извършва се запитване към тази колекция за parameters масив с този обект масив [{"foo":"bar"}] ще доведе документа с "_id" :ObjectId("551d777fcfd33f4e2a61e48f") . Ако обаче промените обекта си на заявка, за да използвате $elemMatch тогава ще доведе и двата документа:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. промяна на типа mongodb в масив

  2. Не може да се свърже с база данни MongoDB 2.0.5 с pymongo 2.2

  3. Mongo DB заявка в Java Spring-data Mongo

  4. Meteor.js се разгръща в example.com или www.example.com?

  5. pymongo - как да съпоставя при търсене?