sql >> Database >  >> NoSQL >> MongoDB

MongoDB:Match meerdere array-elementen

In een geval als dit waarin u de documenten wilt die een specifieke set array-elementen bevatten, kunt u de $all operator:

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

Om het te doen zonder de $all operator die je zou kunnen gebruiken:

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



  1. Hoe upsert met mongodb-java-driver

  2. redis + gevent - Slechte prestaties - wat doe ik verkeerd?

  3. Exporteer één object met mongoexport, hoe specificeer je _id?

  4. Hoe kan ik op afstand verbinding maken met mijn MongoDB op mijn server met Java?