Có thể thực hiện HOẶC trong trận đấu $ không?
Ý tôi là một cái gì đó như thế này:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
Có thể thực hiện HOẶC trong trận đấu $ không?
Ý tôi là một cái gì đó như thế này:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
Câu trả lời:
Trong trường hợp cụ thể này, khi bạn đang $or
-ing cùng một trường , $in
toán tử sẽ là lựa chọn tốt hơn, cũng vì nó làm tăng khả năng đọc:
$match: {
'author': {
$in: ['dave','john']
}
}
Theo tài liệu MongoDB, việc sử dụng $in
được khuyến khích trong trường hợp này:
$ hoặc so với $ in
Khi sử dụng $ hoặc với <expressions> kiểm tra bình đẳng cho giá trị của cùng một trường, hãy sử dụng toán tử $ in thay vì toán tử $ hoặc.
https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in