mongodb - mongo查询多个条件

标签 mongodb mongodb-query

我有数据,

var data = [{name: 'n1', age: 22}, {name: 'n1', age: age: 11}, {name: 'n2', age: age: 16}, {name: 'n3', age: 22}];

我想根据我的多个条件获取数据:

条件1:- var query = {name: 'n1', age: 22};

条件2:- var query = {name = '', age: 22}

我想要一个查询:

如果我运行条件 1,那么结果应该是

[{name: 'n1', age: 22}].

如果我运行条件 2,那么结果应该是

[{name: 'n1', age: 22}, {name: 'n3', age: 22} ].

表示第二个条件,查询应该只搜索年龄字段。

我想在一个查询中实现所有内容。

我正在这样做:

$query:{$and: [{name: query.name}, {age: query.age}]}

它适用于第一个条件,但不适用于第二个条件。 如何在一个查询中实现?

最佳答案

对其进行编码,以便查询中只有您感兴趣的字段:

let criteria = [];

if (query.name && query.name.length > 0) {
   criteria.push({ name: query.name });
}

if (query.age && query.age > 0) {
   criteria.push({ age: query.age });
}

criteria = criteria.length > 0 ? { $and: criteria } : {};

现在您可以将您的条件传递给查询。

关于mongodb - mongo查询多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35200725/

相关文章:

javascript - 在 mongodb 数据库中搜索特定字符串

mongodb - 无法运行 mongod : Fatal Assertion 28562

java - 从集合中以数组形式返回值

javascript - 蒙戈错误: No transaction started

node.js - 我可以 $addToSet 和 upsert 一个数组吗?

mongodb - 在 Mongodb 中过滤数组内部的数组

java - 插入到 mongoDB 时检查唯一性

node.js - 如何在 mongodb 中更新多个数组对象

javascript - Node.js 脚本不退出

scripting - 为删除 mongodb 表定义 cron