我想在 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
字段的文档。