MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongodb $w przeciw polu obiektów tablicy zamiast obiektów tablicy

Musisz wyodrębnić pola „lokalizacja” z tablicy wejściowej i podać je do $in :

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

W celach informacyjnych przepiszę Twoje pytanie:

Mam kolekcję zawierającą takie dokumenty:

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

Mam tablicę wejściową zdefiniowaną w ten sposób:

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

Teraz chcę napisać zapytanie, aby znaleźć wszystkie dokumenty pasujące do pola „lokalizacja” w tablicy, którą mam do wprowadzenia.

Jak mam to zrobić?

Próbowałem:

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

Ale to nie pasuje.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Podstawy wdrażania zestawu replik MongoDB i fragmentów za pomocą marionetki

  2. Wdrożenie MongoDB w chmurze — wysoki TTFB

  3. Jak obsługiwać datę poniżej 1970 w MongoDB

  4. nie mogę zrobić podstawowego skryptu powłoki mongo z uwierzytelnianiem

  5. Najlepszy schemat MongoDB dla klonu Twittera?