sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongoose:find dokumenter af blandet skematype med flere poster

Det er fordi forespørgslen ikke kan matche nogen dokumenter, hvor matrixfeltet parameters har det nøjagtige array-objekt som værdi [{"foo": "bar", "ding": "dong"}] . For at demonstrere dette, lad os indsætte et par eksempeldokumenter i en samling:

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

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

Forespørger på denne samling for parameters array med dette objekt array [{"foo":"bar"}] vil bringe dokumentet med "_id" :ObjectId("551d777fcfd33f4e2a61e48f") . Men hvis du ændrer dit forespørgselsobjekt til at bruge $elemMatch så vil den bringe begge dokumenter:

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



  1. Opsætning af Redis på Webfaction

  2. MongoDb-besparelse kaster fejl for PHP-klassens private medlemmer

  3. Kører mongodb?

  4. Kan et listefelt være en shard-nøgle i MongoDB?