如何在JavaScript的MongoDB whereObj中添加查询条件
解决MongoDB子字段多值排除查询问题
你之前的问题出在把查询条件放错了位置:find方法的第二个参数是投影(指定返回哪些字段),而查询条件应该放在第一个参数whereObj里。
要实现test_field_1.test_sub_field_1不等于34且不等于12的条件,直接用$nin(不包含)操作符最简洁,代码如下:
// 构建查询条件:排除test_sub_field_1为34或12的文档 var whereObj = { 'test_field_1.test_sub_field_1': { $nin: [34, 12] } }; // 执行查询,第二个参数是投影,只排除_id字段 var cursor = collection.find(whereObj, { '_id': 0 });
如果一定要用多个$ne组合(虽然没必要),可以用$and:
var whereObj = { $and: [ { 'test_field_1.test_sub_field_1': { $ne: 34 } }, { 'test_field_1.test_sub_field_1': { $ne: 12 } } ] }; var cursor = collection.find(whereObj, { '_id': 0 });
核心规则:find(queryFilter, projection),第一个参数是文档过滤条件,第二个是返回字段的控制规则。
内容的提问来源于stack exchange,提问作者user1634050
相关产品推荐
相关产品推荐

