MongoDB多条件查询产品集合:基于名称与traderId检索
MongoDB 按产品名称和traderId检索文档的正确姿势
看起来你已经找对路子啦!你当前使用的查询语句完全可以精准匹配product集合中同时满足产品名称为"Watch"和指定traderId的文档,运行正常是理所当然的~
你的有效查询语句
先确认下你的正确写法:
db.getCollection('product').find( {$and:[ {'txtProductName':"Watch"}, {"traderId" : ObjectId("5ac5fb29b0f9b3444e6c1ef2")} ]} )
更简洁的等效写法
MongoDB默认会把查询对象中的多个键值对视为**逻辑与(AND)**关系,所以你可以去掉$and操作符,简化成下面的写法,功能和原语句完全一致:
db.getCollection('product').find({ 'txtProductName':"Watch", "traderId" : ObjectId("5ac5fb29b0f9b3444e6c1ef2") })
额外优化建议
- 注意
traderId的ObjectId格式必须严格符合MongoDB要求(24位十六进制字符),你当前的写法是规范的,不用担心格式问题 - 如果这个查询是高频操作,建议创建复合索引来提升检索效率:
db.product.createIndex({ txtProductName: 1, traderId: 1 })
内容的提问来源于stack exchange,提问作者Abhishek Singh
相关产品推荐
相关产品推荐

