MongoDB - 我可以在一场比赛中使用$和$或吗?

时间:2016-05-26 22:53:42

标签: mongodb

刚开始使用MongoDB - 是否可以在一个语句中使用$or$and

所以atm,我有以下搜索声明:

find(
{$or: [{tags : {$in: ["test", "output"]}}, {$text:{$search: "test" }} ]},
{_id:0, publicID: 1, story:1}
)

但是,我想检查2个字段verifiedflagged等于false。

所以我看到我做不到:

find(
{$or: [{tags : {$in: ["test", "output"]}}, {$text:{$search: "test" }} ]},
{$and: [{verified : false}, {$flagged : false } ] },
{_id:0, publicID: 1, story:1}
)

这使我认为我需要使用aggregate但不确定如何在一个声明中执行$or$and

任何帮助表示感谢。

感谢。

1 个答案:

答案 0 :(得分:3)

我相信这已经得到了回答,但您可以在MongoDB中组合逻辑查询运算符,包括$和$或。

在您的示例中,您可以这样做:

find({
    $and : [
        { $or : [
            { tags : { $in: ["test", "output"] } },
            { $text : { $search : "test" } }
        ]},
        { verified : false },
        { flagged : false }
    ]},
    { _id:0, publicID : 1, story : 1 }
);