sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB:Matcha flera arrayelement

I ett fall som detta där du vill ha dokumenten som innehåller en specifik uppsättning arrayelement, kan du använda $all operatör:

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

För att göra det utan $all operatör du kan använda:

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



  1. Nod + Mongodb + ISODate + Tidszon problem

  2. Det enklaste sättet att konfigurera Embedded MongoDB

  3. Hur lagrar man ett binärt objekt i redis med hjälp av nod?

  4. MongoDB:automatiskt genererade ID är nollor