MongoDB查询报错Unsupported projection option问题求助
解决MongoDB查询的投影参数错误问题
嘿,我一眼就看出问题所在啦!你把查询过滤条件错误地放到了find()方法的第二个参数(投影参数)里,这才导致了那个Unsupported projection option的错误。
问题根源
MongoDB的find()方法有两个核心参数:
- 第一个参数:查询过滤条件,用来筛选符合要求的文档
- 第二个参数:投影(Projection),用来指定要返回哪些字段
你原来的代码里,把"attributes.0.ccode": { $exists: true }和$and这些过滤条件写到了第二个参数里,MongoDB把它们当成了投影选项,自然就报错了。
修正后的代码
把所有过滤条件都放到第一个参数里,投影参数只保留你需要返回的字段即可:
var query = Company.find( { _id: { $in: cdata }, "attributes.0.ccode": { $exists: true, $ne: "" } }, { attributes: 1 } // 仅返回attributes字段 ).sort({});
额外小提示
其实这里不需要显式写$and,MongoDB会默认把多个键值对当作逻辑与的关系,所以上面的写法已经足够简洁清晰啦。
内容的提问来源于stack exchange,提问作者Prithviraj Mitra
相关产品推荐
相关产品推荐

