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

Mongodb $in mod et felt af objekter af array i stedet for objekter af array

Du skal udtrække "placerings"-felterne fra dit input-array og sende dem til $in :

var locs = arr.map(function(x) { return x.location } );
db.collection.find({ "fieldx": { "$in": locs } })

Til reference her vil jeg omskrive dit spørgsmål til dig:

Jeg har en samling, der indeholder dokumenter som dette:

{ "fieldx": "NY" }
{ "fieldx": "LA" }
{ "fieldx": "SF" }

Det, jeg har, er et input-array, der er defineret sådan her:

var arr = [
    { "name": "foo", "location": "NY"},
    { "name": "bar", "location": "LA"},
    { "name": "foobar", "location": "NZ"}
];

Nu vil jeg skrive en forespørgsel for at finde alle de dokumenter, der matcher "placering"-feltet i det array, jeg har til input.

Hvordan gør jeg det?

Jeg har prøvet:

db.collection.find({ "fieldx": { "$in": arr } })

Men det passer ikke.



  1. Sådan opdaterer du et felt ved hjælp af dets tidligere værdi i MongoDB/Mongoose

  2. Sådan fjerner du et felt fra et MongoDB-dokument ($unset)

  3. systemctl blev ikke fundet under opbygning af mongo-billede

  4. Hvilket Javascript-bibliotek kan evaluere MongoDB-lignende forespørgselsprædikater mod et objekt?