查询:
Select * from table1 where f1 = "val1" OR f1 = "val2"
我需要将此查询转换为MongoDB查询,但使用聚合找不到。
答案 0 :(得分:2)
查看$match和$in
或$or
您的查询可能如下所示
db.table1.aggregate( [
{ $match: { f1: { $in: ['val1', 'val2'] } } }
] );
答案 1 :(得分:2)
您不一定需要聚合框架,使用 $in
或 {{进行简单的 find()
查询3}} 运算符会很好:
db.collection.find({
"f1": { "$in": ["val1", "val2"] }
})
使用 $or
运算符:
db.collection.find({
"$or": [
{ "f1": "val1" },
{ "f1": "val2" }
]
})
这只是上述 $or
对于聚合管道方法,您可以运行以下管道,该管道使用 $in
运算符进行查询:
db.collection.aggregate([
{ "$match": { "f1": { "$in": ["val1", "val2"] } } }
])
或使用$或运算符
db.collection.aggregate([
{
"$match": {
"$or": [
{ "f1": "val1" },
{ "f1": "val2" }
]
}
}
])
从文档 $match
,建议
将
$or
vs$in
与<expressions>
一起使用时,等同性检查 相同字段的值,使用$or
运算符代替$in
操作