如何在子查询中查询具有ObjectID的字符串

2024-04-20 00:20:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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,我必须用字符串执行查询。你知道吗

你知道怎么做吗??你知道吗

非常感谢!你知道吗


Tags: 字符串inclientiddbdatamongodbtype