node.js x mongoose でOR/AND/AND&OR組み合わせ検索する(find)方法
スポンサーリンク
node.jsとmongooseを使ったfindでのAND/OR検索。
[目次]
ANDを使った検索
Groupコレクションで、「memberがjohnかつstatusが1」 かつ 「created_byがmeでstatusが1」のデータを検索。
var query = { $and: [ { "member": "john", "status" : "1" }, { "created_by": "me","status" : "1" }, ]}; Group.find(query, function(err, data){ console.log(data) });
ORを使った検索
Groupコレクションで、「memberがjohnかつstatusが1」 または 「created_byがmeでstatusが1」のデータを検索。
var query = { $or: [ { "member": "john", "status" : "1" }, { "created_by": "me","status" : "1" }, ]}; Group.find(query, function(err, data){ console.log(data) });
こういう書き方も出来ます。
Group.find().or([ { "member": "john", "status" : "1" }, { "created_by": "me", "status" : "1" } ]) .exec(function(err, data){ console.log(data); });
ANDとORの組合せ
「memberがjohnまたはcath」かつ「placeがtokyoまたはosaka」のデータを検索。 var query = { $and: [ { $or: [{ "member" : "john"}, {"member": "cath"}] }, { $or: [{ "place" : "tokyo" }, { "place": "osaka" }] } ]}; Group.find(query, function (err, data) { console.log(data); });