2013-06-03 29 views
62

Czy jest możliwe zrobienie OR w meczu $?Runda danych agregacji MongoDB OR

mam na myśli coś takiego:

db.articles.aggregate(
    { $or: [ $match : { author : "dave" }, $match : { author : "john" }] } 
); 
+0

Cześć, Ten link może cię http://www.codefari.com/2015/11/match-aggregation-in-mongodb-with pomóc. html – Singh

Odpowiedz

102
$match: { $or: [{ author: 'dave' }, { author: 'john' }] } 

Podoba Ci tak, ponieważ operator $match po prostu trwa, co normalnie można umieścić w find() funkcji

53

szczególności pytanie zadane powyżej, tj

db.articles.aggregate(
    { $or: [ $match : { author : "dave" }, $match : { author : "john" }] } 
); 

Polecam t O iść z $in operatora dla tego samego zapytania tj następująco:

$match : { 'author' : { $in: ['dave','john'] } 
+1

Według dokumentów Mongo, ten "najbardziej skuteczny" sposób na porównanie równości, jak na przykład. Zobacz http://docs.mongodb.org/manual/reference/operator/query/or/#_S_or%22 –

+1

$ in to sposób, aby przejść – blueskin

+0

Wierzę, że $ lub nie jest operatorem agregacji. –

Powiązane problemy