我试图通过使用mongoose过滤器从我的mongoDB数据库中获取数据.这种情况下,数据库中的每个用户对象都有某些字段,比如"Region""Sector".

目前,我正在获取所有包含关键字"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);

});
});

How can put some conditions in mongoose that it return users that contain both "region" && "Sector" in their objects.目前它只返回包含region关键字的用户.

我试过使用$和operator,但无法使其工作.

推荐答案

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

 });

Node.js相关问答推荐

在child_Process中持久运行SSH命令

如何解决无法获得本地颁发者证书的问题

使用HTTPS从NodeJS 17.9.1升级到18.0.0后,SignalR连接失败

Mongoose-如何从父文档填充到子文档

Sequelize-测试使用虚拟场更新模型

FireStore事务似乎已允许并发编辑?

EJS ForEach循环标记

Sequelize、postgres和posgis:在n°;公里

创建查询以展开数组并筛选出具有特定值的元素之后的元素

为什么我的过滤器无法在我在下面编写的 Google Analytics 4 应用程序脚本代码中工作?我该如何修复它?

使用 axios 和 Cheerio (Node js) 抓取 google 搜索

在全局对象上声明的函数

为什么运行 yarn 命令会出错 - yargs-parser的完整性判断失败

错误:找不到模块'C:\Users\nguye\AppData\Local\nodejs\node_modules\npm\bin\npm-cli.js'

如何使用 superagent/supertest 链接 http 调用?

Ansible 将以什么用户身份运行我的命令?

在 Node.js 与 Cron 作业(job)中设置间隔?

如何解决'npm应该在 node repl之外运行,在你的普通shell中'

使用 pm2 编程 api 重命名进程

NPM:为什么要安装这个包?