MongoDB调用findOne方法排除_id字段查询不生效问题
问题原因
当前写法是MongoDB Shell中findOne的传参规则:直接将投影配置作为第二个参数传入即可生效。但使用MongoDB Node.js驱动时,findOne方法的第二个参数是全局配置对象,投影规则需要写在配置对象的projection字段内才会被识别,直接传入投影对象的写法无法被驱动正确解析,因此没有按预期过滤_id字段。
修正代码
client.db("game").collection("players").findOne( { _id: "s1" }, { projection: { data: 1, _id: 0 } } )
注意事项
- MongoDB Shell和各语言驱动的方法参数结构存在差异,Node.js、Python、Java等语言驱动的传参规则不能直接套用Shell的写法
- 执行修正后的代码,查询结果将仅返回
data字段,不会携带_id字段
内容的提问来源于stack exchange,提问作者Naif
相关产品推荐
相关产品推荐

