我有资料
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 } : {};
现在,您可以将条件传递给查询。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句