or
为 $or
条件指定参数;
//member = ["zhangsan", "lisi", "wangwu"];
let filter = {
$or: [{docKey: "public"},
{owner: "zhangsan"},
{member: "lisi"}
]
}
db.getCollection('docs').find(filter);
- 数据筛选 or 是或查问
- 满足上面的条件其中之一就能够查问出相干数据
- 如果数据库参数是数组,间接会从数组外面匹配是否蕴含相干数据 如上:member
and
为 $and
条件指定参数;
let filter = {
$and: [{docKey: "public"},
{owner: "zhangsan"}
]
}
db.getCollection('docs').find(filter);
直译:
docKey == “public” && owner == “zhangsan”
须要满足枚举的两个条件能力筛选出相应数据;
and 与 or 联结应用
let filter = {
$or: [
{docKey: "public"},
{$and: [{docKey: "private"}, {$or:[{member: "zhangsan"}, {owner: "lisi"}]}]
}
]
}
db.getCollection('docs').find(filter);
直译:
docKey == “public” || (docKey == “private” && (member.indexOf(“zhangsan”)>-1 || owner==”lisi”))
where
let filter = {
$or: [
{docKey: "public"},
{$where: function(){return this.docKey == "private" && (this.member.indexOf("zhangsan") > -1 || this.owner == "lisi");
}
}
]
}
db.getCollection('docs').find(filter);
直译:
docKey == “public” || (docKey == “private” && (member.indexOf(“zhangsan”)>-1 || owner==”lisi”))
或者如下的写法
let filter = {
$or: [
{docKey: "public"},
{$where: `this.docKey == "private" && (this.member.indexOf("zhangsan") > -1 || this.owner == "lisi")`
}
]
}
db.getCollection('docs').find(filter);