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

MongoDB:Match flere array-elementer

I et tilfælde som dette, hvor du vil have dokumenter, der indeholder et specifikt sæt af array-elementer, kan du bruge $all operatør:

db.MyCollection.find(
{ 
    Location: { "$within": { "$center": [ [1, 1], 5 ] } },
    Properties: {
        $all: [
            {$elemMatch: { Type: 1, Value: "a" }},
            {$elemMatch: { Type: 2, Value: "b" }}
        ]
    }
})

For at gøre det uden $all operatør du kunne bruge:

db.MyCollection.find(
{ 
    Location: { "$within": { "$center": [ [1, 1], 5 ] } },
    $and: [
        { Properties: {
            $elemMatch: { Type: 1, Value: "a" }
        }},
        { Properties: {
            $elemMatch: { Type: 2, Value: "b" }
        }}
    ]
})



  1. Forbindelsesproblem fra seneste .Net MongoDb.Driver

  2. MongoDB 'count()' er meget langsom. Hvordan forfiner/arbejder vi med det?

  3. MongoDB:Forespørger på flere samlinger med to forespørgsler?

  4. Sådan bruger du mongoose findOne