将SQL查询转换为MongoDB聚合,其中something=";这";或某事;那";

将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

查询:

我需要将此查询转换为MongoDB查询,但使用聚合未找到。

查看并查看
$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" }
           ] 
        } 
    } 
])