将SQL查询转换为MongoDB聚合,其中something=";这";或某事;那";
查询: 我需要将此查询转换为MongoDB查询,但使用聚合未找到。查看并查看将SQL查询转换为MongoDB聚合,其中something=";这";或某事;那";,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,查询: 我需要将此查询转换为MongoDB查询,但使用聚合未找到。查看并查看$in或$or 您的查询可能如下所示 Select * from table1 where f1 = "val1" OR f1 = "val2" 为此,您不一定需要聚合框架,使用或运算符进行简单的find()查询即可: db.table1.aggregate( [ { $match: { f1: { $in: ['val1', 'val2'] } } } ] ); 使用操作符: db.collection.fin
$in
或$or
您的查询可能如下所示
Select * from table1 where f1 = "val1" OR f1 = "val2"
为此,您不一定需要聚合框架,使用或运算符进行简单的
find()
查询即可:
db.table1.aggregate( [
{ $match: { f1: { $in: ['val1', 'val2'] } } }
] );
使用操作符:
db.collection.find({
"f1": { "$in": ["val1", "val2"] }
})
对于上述
对于聚合管道方法,可以运行以下管道,该管道使用运算符进行查询:
db.collection.find({
"$or": [
{ "f1": "val1" },
{ "f1": "val2" }
]
})
或者使用$or运算符
db.collection.aggregate([
{ "$match": { "f1": { "$in": ["val1", "val2"] } } }
])
从文档中,建议 将与
一起使用时,会对
相同字段的值,请使用运算符而不是
接线员
哪个更快?在或中?请参考此线程,您是否使用sequelize?不,我使用的是mongoDB和RoR。
db.collection.aggregate([
{
"$match": {
"$or": [
{ "f1": "val1" },
{ "f1": "val2" }
]
}
}
])