2015-12-12 11 views
5

Tworzę projekt nauki Meteor. Jest w nim kolekcja, której dokumenty mają właściwość o nazwie słowa kluczowe, która jest tablicą ciągów. Mam drugą tablicę ciągów. Chcę filtrować kolekcję w ten sposób, aby zwracała tylko te dokumenty, które przecinają macierz z tą drugą tablicą, tj. Obie tablice mają jeden lub kilka takich samych elementów. Czy to możliwe?Filtrowanie kolekcji MongoDb, jeśli tablica pól i tablica argumentów są przecinane

Odpowiedz

11

Tak, zapytanie będzie:

var searchKeywords = ['a','b','c','d'] 

MyCollection = new Mongo.Collection('mycollection'); 

MyCollection.insert({ 
    keywords: ['x','y','a','b'] 
}); 
// returns some ID 

MyCollection.findOne({ 
    keywords: { $in: searchKeywords } 
})._id 
// returns the same ID 
+1

Dziękuję bardzo. To naprawdę działa. Tylko _searchKeywords_ nie może być umieszczane w nawiasach klamrowych, ponieważ $ in wymaga tablicy. –

+0

Aoff, tak, naprawiono to! Dzięki –