遇到问题--mongodb---python---pymongo通过_id查询不到数据

文寒
2023-12-01

情况

pymongo通过_id查询不到数据

正常使用的pymongo查询语句如下:


id="600bcb89436877002d001eaa"

import pandas as pd
from pymongo import *
client = MongoClient('mongodb://root:password@mongodb.mydb.com:3717/mydb')
db = client['mydb']
db_collection = db['comment']

results = []
for comment in db_collection.find({"_id":id}):
   _id=comment.get("_id", None).__str__()
   userId = comment.get("userId", None)
   results.append((_id,userId))

df_comment = pd.DataFrame(results, columns=['_id','userId'])
df_comment.head(3)

但是这样查询 查不出数据来

db_collection为空

原因

mongodb中_id的类型是ObjectId,不是字符串,如果我们使用字符串作为查询的值,会对应不到相关的数据。

解决方案

把id字符串转换为 ObjectId后再进行查询。

主要使用的语句如下:

from bson import ObjectId 

oid = ObjectId(id) 
 类似资料: