草庐IT

mongodb - 使用 Python 连接到远程 MongoDB 服务器

我编写了一个脚本,用于在python中查询mongodb我正在使用PyMongo。我正在尝试使用此脚本连接到远程MongoDB服务器,然后在脚本中运行查询,然后我希望能够将从mongodb取回的数据转储到文件中。我需要在脚本顶部设置哪些参数才能连接到此数据库、使用我的用户名和密码、切换到正确的数据库然后运行查询? 最佳答案 几个选项。首先你可以提供一个MongoDBURI可以提供给MongoClient作为论据。然后您可以根据需要使用gettingadatabaseonceconnected的标准方法进行切换。.或者,您可以正常连接

json - 值错误 : dictionary update sequence element #0 has length 3; 2 is required

我正尝试在MongoDB中插入值,但出现此错误:ValueError:dictionaryupdatesequenceelement#0haslength3;2isrequired.FrompymongoimportMongoClientclient=MongoClient()db=client.abc_databasekeys=[]values=[]key=input("enterkeys:").split(",")keys.append(key)print(keys)print(keys[0][1])value=input("entervalues").split(",")valu

python - 在 mongodb 中存储对象值

我在python中获取了一些对象值,我想将其存储在mongodb中供以后使用,但没有成功defcallPylink(self):frompylinkgrammar.linkgrammarimportParserimportsysp=Parser()linkage=p.parse_sent("WhenwasGandhiborn")try:print"Linkage0",linkage[0]except:print"error"self.collection.insert(linkage[0].__dict__)在插入行:Linkage0Traceback(mostrecentcallla

python - 属性错误 : 'WriteConcern' object has no attribute 'acknowledged'

我已经在MongoDB数据库中存储了一个pdf,我正在按如下方式访问它:dbPDFReports=client['pdfReports']客户端是我的MongoClient如下:client=MongoClient(some_ip,27017)但是我收到了这个错误:AttributeError:'WriteConcern'objecthasnoattribute'acknowledged'知道为什么吗?编辑升级pymongo后,我得到了以下回溯:Traceback(mostrecentcalllast):File"main.py",line2,infrombulkimport*File

python - (PyMongo) - 函数 find_one_and_update() 的参数

我在下面列出的代码行中收到一个通用的Django错误。我很难理解有关如何为此设置参数的pymongo文档function.我在想我写错了。我有一组请求文件。每个请求文档都有一个“请求”键和一个值(subreddit_name+“F”)。这就是我想查询和查找文档的方式。每个文档还有一个带有值(pdone变量)的“pdone”键。这是我要更改的文档中的键值。发生错误的代码行:self.collection_requests.find_one_and_update({'request':self.subreddit_name+"F"},{'pdone':pdone},return_docum

mongodb - 检查游标是否超时

是否可以检查数据库中打开的游标是否已超时?.alive属性似乎在没有实际调用next()的情况下不会更新,但这也会导致光标位置前进,这是我不希望的。背景:我将数据延迟加载到Web客户端,并在服务器端保持游标打开,以便客户端可以从中请求更多数据。我让Mongo的游标超时,因为这对于用例来说已经足够好了,并且简化了有保证的游标垃圾收集。但是,这让我不得不管理打开的游标引用Python端,这是我在偶尔的垃圾收集周期中所做的。在这个周期中,我想丢弃所有在Mongo端已经超时的游标。 最佳答案 根据changelog.rst对于PyMongo

python - MongoDB 查询对嵌套元素的行为不符合预期

我正在尝试返回与值匹配并且还与子属性匹配的结果。所以我想返回匹配月份的结果,然后匹配一系列值。然而,我发现即使是简单的搜索,似乎也没有返回任何我期望的结果。使用pymongo我的查询是:month=2results=db.master.find({"months":str(month)})这肯定会返回正确月份的所有匹配文档。但是我没有得到month=2的记录返回我的数据在MDB中存储为:{"_id":{"$oid":"568d0bebc1bed847da7a2e6f"},"months":{"2":{"std_rank":0.11338862902393358,"rank_gain":

python - 如果值不匹配则更新文档

在Mongodb中,如果文档的一个字段存在,如何跳过更新?举个例子,我有以下文档结构,如果link键不匹配,我只想更新它。{"_id":{"$oid":"56e9978732beb44a2f2ac6ae"},"domain":"example.co.uk","good":[{"crawled":true,"added":{"$date":"2016-03-16T17:27:17.461Z"},"link":"/url-1"},{"crawled":false,"added":{"$date":"2016-03-16T17:27:17.461Z"},"link":"url-2"}]}我的

python - 使用生成器迭代 Mongo 中的大型集合

我有一个包含500K+文档的集合,这些文档存储在单个节点mongo上。我的pymongocursor.find()有时会因为超时而失败。虽然我可以将find设置为忽略超时,但我不喜欢这种方法。相反,我尝试了一个生成器(改编自this答案和this链接):defmongo_iterator(self,cursor,limit=1000):skip=0whileTrue:results=cursor.find({}).sort("signature",1).skip(skip).limit(limit)try:results.next()exceptStopIteration:breakf

python - 如何在不更改 pymongo 中的 id 的情况下更新整个对象?

我正在尝试更新存储在MongoDB中的记录/对象的所有属性,现在我正在尝试这样做。已删除对象,但保留被删除对象的ID。使用我删除的相同ID创建一个新对象。是否正确?或者他们使用pymongo做什么?mongo_object={_id:123,prop_key_1:some_value,//...manypresentprop_key_n:some_value,}defdelete(record):doc=get_db().reviews.delete_many({"id":record["_id"]})print(doc.deleted_count)#allkeyvaluesarech