带有 AND 和 OR 的 Meteor MongoDB 查询



我想在 mongo db 中进行一个查询,就像 SQL 中的查询一样:

Select * from Users 
where familyId =@X and (isDeleted =false or isDeleted is null)

我已经有了第一个条件,我不知道如何将其与 And-Or 混合

var myMembers = Meteor.users.find({ "profile.family_id":      Meteor.user().profile.family_id });

怎么可能?

您可以使用

$and运算符显式查询,如下所示:

var family_id = Meteor.user().profile.family_id,
    myMembers = Meteor.users.find({ 
        "$and": [
            { "profile.family_id": family_id },
            {
                "$or": [
                    { "isDeleted": false },
                    { "isDeleted": null } /* or { "isDeleted": { "$exists": false } } */
                ]
            }
        ]
    });

或通过指定逗号分隔的表达式隐式

var family_id = Meteor.user().profile.family_id,
    myMembers = Meteor.users.find({ 
        "profile.family_id": family_id,
        "$or": [
            { "isDeleted": false },
            { "isDeleted": null } /* or { "isDeleted": { "$exists": false } } */
        ]
    });

: 要检查字段是否存在,可以使用 $exists 运算符作为{ "isDeleted": { "$exists": false } },因为{ isDeleted : null }查询匹配包含值为 null 的isDeleted字段或不包含isDeleted字段的文档。

最新更新