在我的mongo集合中提供此数据
product_id | original_id | text
1 | "A00149" | "1280 x 1024"
1 | "A00373" | "Black"
2 | "A00149" | "1280 x 1024"
2 | "A00373" | "White"
3 | "A00149" | "1980 x 1200"
3 | "A00373" | "Black"
(我在手中的值附近添加了引号 - 这些不在真实的集合中)
使用以下查询,我得到0结果,虽然我期待1。
product_id = 1应符合查询。
有人可以解释我做错了吗?
在SQL中,这将是这样的
WHERE
(original_id = "A00149" AND text = "1280 x 1024")
AND
(original_id = "A00373" AND text = "Black")
和mongo查询
db.Filter.find({
"find":true,
"query":{
"$and":[
{
"original_id":"A00149",
"text":"1280 x 1024"
},
{
"original_id":"A00373",
"text":"Black"
}
]
},
"fields":{
"product_id":1
}
});
答案 0 :(得分:0)
如果您的收藏品被调用'过滤'并且您希望查询返回带有product_id = 1的文档,然后简单:
db.Filter.find({"product_id" : 1})
我可能会误解你的问题吗?
编辑:
尝试:
db.Filter.find({$and: [{"original_id": "A00149", "text": "1280 x 1024"}, {"original_id": "A00373", "text": "Black"}]},{"product_id": 1})
请参阅http://docs.mongodb.org/manual/reference/operator/query/and/#op._S_and