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);