我在mongoDB中有一个查询问题。你知道吗
已执行此查询:
db.client_data.find(
... {
... client_data_type_id : ObjectId("533bde998a223858e3c8d352"), "list_attributes.535e70158a22382679a738d3" : "535f5b798a22383f5a59c86f"
... },
... {
... _id : 1
... } )
给我这个结果
{ "_id" : ObjectId("535f5bb78a22383f5a59c870") }
{ "_id" : ObjectId("535f5bd28a22383f5a59c871") }
{ "_id" : ObjectId("535f5bda8a22383f5a59c872") }
我现在要执行此查询:
db.client_data.find(
{
client_data_type_id : ObjectId("533a7d258a22383070aa1092"),
"list_attributes.535e27768a22387ca86974cb" :
{
$in : [
db.client_data.find(
{
client_data_type_id : ObjectId("533bde998a223858e3c8d352"), "list_attributes.535e70158a22382679a738d3" : "535f5b798a22383f5a59c86f"
},
{
_id : 1
} )
]
}
},
{
_id : 0,
list_attributes : 1
}
)
如果我使用字符串执行此查询,它将工作:
db.client_data.find(
{
client_data_type_id : ObjectId("533a7d258a22383070aa1092"),
"list_attributes.535e27768a22387ca86974cb" :
{
$in : [
"535f5bda8a22383f5a59c872",
"535f5bd28a22383f5a59c871",
"535f5bb78a22383f5a59c870",
]
}
},
{
_id : 0,
list_attributes : 1
}
)
这给了我正确的结果。 但是对于子查询,它不起作用,因为子查询给我ObjectID,我必须用字符串执行查询。你知道吗
你知道怎么做吗??你知道吗
非常感谢!你知道吗
可以使用str(objectid)将objectid转换为十六进制表示形式。你知道吗
http://api.mongodb.org/python/1.7/api/pymongo/objectid.html
相关问题 更多 >
编程相关推荐