草庐IT

pymongo-2.x

全部标签

python - 您可以将文本搜索的权重传递给 PyMongo 中的 create_index 吗?

我有一个自动化过程,可以在Mongo实例(当前的Mongo2.6/PyMongo2.72)中的各个字段上创建文本索引。frompymongoimportMongoClient,TEXTdb=MongoClient()collection=db.collectioncollection.create_index([("foo",TEXT),("bar",TEXT),("baz",TEXT)])我想根据Mongodocs对集合进行加权.在Mongoshell中,这将是:db.collection.create_index({foo:text,bar:text,baz:text},{weig

python - 如何检索两个字段值与 pymongo 相等的所有文档?

我有一个MongoDB集合,我想使用python提取某些日期字段小于其他日期字段的所有文档。我知道如何在robomongo中做到这一点:db.getCollection('myCollection').find({'date1':{'$lt':ISODate(this.date2)}})但是当我使用pymongo时这不起作用。我尝试使用datetime而不是ISODate,但没有成功。编辑:date1和date2都是字段名有什么解决办法吗? 最佳答案 您需要使用.aggregate()提供对聚合管道和$redact的访问的方法运营商

Mongodb 错误失败 24 : Too many open files : Using pymongo

我的代码产生了相当大的流量,有很多查找、更新、映射缩减和创建索引操作,所以我不确定哪个是罪魁祸首,但我收到以下错误:_create_global_word_frequency_collectionfull_response=True)File"/Users/arj/anaconda/lib/python2.7/site-packages/pymongo/collection.py",line1857,inmap_reducesock_info,cmd,slave_ok,ReadPreference.PRIMARY)File"/Users/arj/anaconda/lib/python2

python - PyMongo 类型错误

我有一个python脚本,我在其中使用pymongo聚合集合并在特定聚合的总和大于某个数字(在本例中为30)时对它们执行某些操作。agg=collection.aggregate([{"$match":{"valid":1}},{"$group":{"_id":{"createdby":"$createdby","addedtime":"$addedtime","empname":"$empname"},"count":{"$sum":1}}}])cnt=0foreachAgginagg:print"eachAgg=",eachAggifeachAgg['count']>=30:当我运

python - 如何使用 PyMongo 将索引从一个集合复制到另一个集合?

在另一个问题(HowdoIcopyacollectionfromonedatabasetoanotherdatabaseonthesameserverusingPyMongo?)中,我想出了如何将一个MongoDB集合复制到同一台服务器上的另一个数据库。但是,这不会复制源集合上的索引,那么我该如何复制这些索引呢? 最佳答案 因此使用如下简化设置:frompymongoimportMongoClientclient=MongoClient()client.db1.coll1.insert({'content':'helloworld'

mongodb - 使用pymongo选择带有过滤器的随机文档?

我found,thattoselectrandomdocument,我需要使用$sample命令://Getonerandomdocumentfromthemycollcollection.db.mycoll.aggregate({$sample:{size:1}})但是如果我需要过滤文档然后随机取一个怎么办?我正在处理尚未处理的文档query={'start_time':{'$exists':False}}hp_entries=mongo.hyperparameters_collection.find(query)我将如何处理随机数? 最佳答案

python - pymongo:搜索字典或操作

我正在使用下面的代码试图获取所有记录,“user_name”字段或“text”字段包含指定的关键字,看起来pymongo将操作视为AND,如何指定pymongo来处理是“或”操作吗?search_dict={}text_regex=".*"+key+".*";text_reg=re.compile(text_regex,re.IGNORECASE)search_dict["text"]=text_reguser_name_regex=".*"+key+".*";user_name_reg=re.compile(user_name_regex,re.IGNORECASE)search_d

mongodb - replicaset (+pymongo) 当 master 宕机时从 slave 读取

似乎使用pymongo时,连接将始终尝试从PRIMARY中读取,当它关闭时,会引发套接字错误,直到新的选举过程完成。鉴于replicSet的目的之一是平衡读取负载,这似乎是一个主要缺陷,除非我在这里遗漏了一个关键概念。我已经提供了slave_ok东西,但是,只要没有主可用,就没有读,更不用说写了。我已经在端口8910、8911和8912启动了3个mongod实例,然后一个接一个地关闭它们,当最后一个仍然存在时,无法从中读取,即使你的mongo(cli)允许读取。正在使用的版本:mongodb:2.0.2pymongo:2.1.1pymongo控制台输出>>>collection=Con

python - 在扭曲中使用 pymongo 究竟有什么问题?

我有一个扭曲的服务器应用程序,它与大约1000个客户端保持持久连接。每个客户端偶尔会向我的扭曲服务器发送数据,我希望该服务器将数据存储到MongoDB数据库中。到目前为止,还不错。但是,pymongo文档指出“没有将pymongo与twisted一起使用的好方法”。我不明白为什么不呢。有人可以解释问题到底是什么以及陷阱是什么吗?我认为这与同步的pymongo有关,但我只想将一些东西插入数据库。如果我在文件connector.py中声明了一个pymongo.MongoClient实例,然后将连接器导入运行我的Twisted工厂和协议(protocol)的主python文件,我应该能够使用

Python MongoDB (PyMongo) 多重处理游标

我正在尝试制作一个多处理MongoDB实用程序,它运行良好,但我认为我遇到了性能问题......即使有20名worker,它每秒处理的文档也不超过2800份......我认为我可以快5倍...这是我的代码,它没有做任何异常,只是打印到光标末尾的剩余时间。也许有更好的方法在MongoDB游标上执行多处理,因为我需要在每个包含17.4M记录集合的文档上运行一些东西,所以性能和更少的时间是必须的。START=time.time()defremaining_time(a,b):ifSTART:y=(time.time()-START)z=((a*y)/b)-yd=time.strftime('