我对以下问题感到困惑。
我正在使用Flask,Flask pymongo扩展,mongodb版本v2。2.0-rc0,pdfile版本4.5
这是我的路线:
@app.route("/check/<id>")
def check(id):
doc=conn.db.msg.find_one({'_id':id})
return render_template('base.html',name=doc)
该id是msg集合中文档的有效_id,但始终不返回任何id。
我试过:
有什么想法吗?
更新:完整url的外观如下所示:
http://127.0.0.1:8000/check/5030b628895b800de1a9a792
更新2:
对于ruby,我发现了一个类似的问题(答案)。不确定如何将其转换为python,我需要什么样的导入/模块?
如何通过_id检索文档?
更新3:我试过:
import bson
@app.route("/check/<id>")
def check(id):
id2="'"+id+"'"
doc=conn.db.msg.find_one({'_id':bson.objectid(id2) })
return render_template('base.html',name=doc)
但我得到TypeError:'模块'对象是不可调用的(它不工作与id)
当我达到1500时,我会建议一个截断标签:-S
更新4:
最后我把它弄了起来
这就是我的解决方案:
import bson
@app.route("/check/<id>")
def check(id):
doc=conn.db.msg.find_one({'_id':bson.ObjectId(oid=str(id))})
return render_template('base.html',name=doc)
您可能还想尝试使用来自bson.objectid
模块的ObjectId
,如下所示:
from bson.objectid import ObjectId
在这种情况下,您不需要提供oid
kwarg。您只需执行以下操作:
db_conn.msg.find_one({'_id': ObjectId(my_oid)})
问题内容: 我需要使用pymongo用python搜索ObjectId,但是我总是会收到此错误。有什么想法如何搜索? 问题答案: 我使用pymongo 2.4.1。
我的mongoDB中有这种数据 这里假设我做一个查询 这给了我她的结果,但我有名字“nna”或名字“Ana”或名字“anna”或任何其他组合。那么,如何使用Mongoose获取MongoDB中字符串的最接近值呢
我在MongoDB有一个收藏,里面有以下文档。 现在,我尝试使用以下查询查询一些文档。 根据我的理解,由于\u id是一个复合字段,并且Mongo总是在\u id上维护一个索引,因此要回答上述查询,Mongo应该在“\u id”上使用索引。然而,上述问题的答案如下: 可以观察到,MongoDB正在对DB进行一次完整的扫描,以查找少量文档。我不知道这里到底怎么了。 我试图改变查询的顺序,但结果相同。
我有以下收藏: 我想通过firstname和/或lastname搜索用户(firstname/lastname/firstname+lastname)。 编辑3: 错误:
问题内容: 我需要在我的Linux系统(专用的虚拟主机)上找到所有文件。我尝试了以下方法:,但是不起作用。有什么建议吗? 问题答案: 您可以使用以下find命令执行此操作: 进行不区分大小写的搜索。
问题内容: 我如何在mongodb文档中嵌套文档的地方搜索文档。例如,我有一组私人消息。每条私人消息都有两个嵌套文档- 一个代表发送用户,另一个代表接收使用。两个嵌套文档的格式均为- userID:34343,名称:Joe Bloggs 我希望能够搜索用户发送的所有邮件(例如,搜索发件人用户的嵌套文档)。 我正在使用Java驱动程序。我是否需要创建一个代表嵌套文档的DBObject? 谢谢 问题答