情况
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)
|