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

在使用Pymongo查询MongoDB时,如果直接通过_id字段(字符串形式)进行查询,可能会查不到数据。原因是_id在数据库中存储为ObjectId类型。为解决此问题,需要将字符串_id转换为ObjectId类型再进行查询。具体解决方案是在查询语句中使用`ObjectId(id)`将字符串转换为ObjectId对象。
摘要由CSDN通过智能技术生成

情况

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,不是字符串&#

根据提供的引用内容,可以看出你在使用MongoDBTemplate查询遇到了一些问题问题可能是由于使用了不正确的查询条件导致的。在引用中提到,使用字符串类型的_id参数进行查询能够成功找到结果。而在引用中,你使用了id作为查询条件,但查询不到数据。 因此,建议你按照引用中的方法,将id参数转换为字符串类型再进行查询。具体代码示例如下: ```java Criteria criteria = new Criteria(); if (id != null) { criteria.and("_id").is(new ObjectId(id).toString()); } Query query = new Query(criteria); ``` 这样,你可以通过将id转换为字符串类型的ObjectId来正确查询数据。希望这个解决方案对你有帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MongoDBTemplate中通过ID查询不出数据](https://blog.csdn.net/Xu_XiaoXiao_Ji/article/details/117986140)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [MongoDB因数值太大而查询不到这条记录](https://blog.csdn.net/MarkAdc/article/details/127527099)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [遇到问题--mongodb---python---pymongo通过_id查询不到数据](https://blog.csdn.net/q383965374/article/details/123522925)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小凡vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值