mongoose“发现”与多个条件

我想通过使用mongoosefilter从我的mongoDB数据库中获取数据。 该场景是数据库中的每个用户对象都具有某些字段,如“区域”“扇区”

目前,我正在获取所有包含关键字“region”的用户,如下所示:

// Filter all healthcare bios by region app.get('/user',function(req, res) { // use mongoose to get all users in the database User.find({region: "NA"}, function(err, user) { // if there is an error retrieving, send the error. nothing after res.send(err) will execute if (err) { res.send(err); } // return all todos in JSON format console.log(user); res.json(user); }); }); 

怎样才能把一些条件放在mongoose身上,使它返回同时包含“区域”&&“扇区”的用户。 目前它只返回在其中具有region关键字的用户。

我曾尝试使用$和操作符,但我无法得到它的工作。

 app.get('/user',function(req, res) { User.find({region: "NA",sector:"Some Sector"}, function(err, user) { if (err) { res.send(err); } console.log(user); res.json(user); }); }); 

如果您想要区域的数据:“NA”或扇区:“某个扇区”。 你可以使用$or操作符。

 User.find({$or:[{region: "NA"},{sector:"Some Sector"}]}, function(err, user) { if (err) { res.send(err); } console.log(user); res.json(user); }); 

如果你想要包含任何区域或扇区的结果,只要两者同时存在,你需要在你的User.find使用以下查询: {region: {$exists:true},sector: {$exists:true}}

,就等于$and只要你search不同的领域。