爲 $or
條件指定參數;數據庫
//member = ["zhangsan", "lisi", "wangwu"]; let filter = { $or: [ {docKey: "public"}, {owner: "zhangsan"}, {member: "lisi"} ] } db.getCollection('docs').find(filter);
爲 $and
條件指定參數;數組
let filter = { $and: [ {docKey: "public"}, {owner: "zhangsan"} ] } db.getCollection('docs').find(filter);
直譯:this
docKey == "public" && owner == "zhangsan"
須要知足枚舉的兩個條件才能篩選出相應數據;code
let filter = { $or: [ { docKey: "public" }, { $and: [{docKey: "private"}, {$or:[{member: "zhangsan"}, {owner: "lisi"}]}] } ] } db.getCollection('docs').find(filter);
直譯:get
docKey == "public" || (docKey == "private" && (member.indexOf("zhangsan")>-1 || owner=="lisi"))
let filter = { $or: [ { docKey: "public" }, { $where: function(){ return this.docKey == "private" && (this.member.indexOf("zhangsan") > -1 || this.owner == "lisi"); } } ] } db.getCollection('docs').find(filter);
直譯:io
docKey == "public" || (docKey == "private" && (member.indexOf("zhangsan")>-1 || owner=="lisi"))
或者以下的寫法function
let filter = { $or: [ { docKey: "public" }, { $where: `this.docKey == "private" && (this.member.indexOf("zhangsan") > -1 || this.owner == "lisi")` } ] } db.getCollection('docs').find(filter);