草庐IT

pymongo-2.x

全部标签

mongodb - 使用 pymongo 和自定义 _id 字段更新

我正在尝试根据thisdocument将预先聚合的性能指标存储在分片mongodb中.我正在尝试更新记录中的分钟子文档,这些子文档可能存在也可能不存在,就像这样(self.collection是一个pymongo集合实例):self.collection.update(query,data,upsert=True)查询:{'_id':u'12345CHA-2RU020130304','metadata':{'adaptor_id':'CHA-2RU','array_serial':12345,'date':datetime.datetime(2013,3,4,0,0,tzinfo=),

python - 如何在 pymongo 中使用 mongo 函数?

我正在查看mongodbtutorials.我想使用一些javascriptmongodb函数,但我看不出如何使用pymongo来做到这一点。我可以启动mongoshell,但这必须通过pymongo作为我的wsgi应用程序的一部分来完成。pymongo似乎有Codeobject-我怎样才能1)将一些代码对象放入我的数据库中,以及2)将它们与pymongo一起使用? 最佳答案 您要在服务器上运行的任何JavaScript函数都必须使用"eval"command执行.您可以看到如何从Python中调用它here.您可以调用您拥有的函数

python - 是否可以直接使用 pymongo 对子文档的 mongodb 数组进行排序?

我不需要对返回的文档(对象)进行排序,而是根据嵌套值对每个文档(对象)进行排序。pymongo.sort()是否可行?假设一个对象是:{//documentdata,array:[{//subdocumentdata,"key":185},{//subdocumentdata,"key":186},{...}]}我尝试了以下不起作用但我搜索了一个简单的类似选项:db.col.find().sort('array.key',pymongo.ASCENDING)还是应该用python排序?forlocationinlocations:data['array']=sorted(data['a

mongodb - PyMongo:我应该使用单个客户端还是多个客户端?

问题很简单:我应该将所有操作都保存在一个MongoClient中吗?单个客户端或多个客户端哪个更好? 最佳答案 MongoClient实际上维护了一个连接池。所以拥有多个客户没有任何优势。恰恰相反,因为新客户端必须首先连接到MongoDB,每次创建新客户端时都需要三次握手和其他开销。由于多个客户端只对单个应用程序不利,答案是:只创建一个客户端并在需要建立连接的任何地方使用它。 关于mongodb-PyMongo:我应该使用单个客户端还是多个客户端?,我们在StackOverflow上找到

python - PyMongo 按多个键分组

使用PyMongo,一键分组似乎没问题:results=collection.group(key={"scan_status":0},condition={'date':{'$gte':startdate}},initial={"count":0},reduce=reducer)结果:{u'count':215339.0,u'scan_status':u'PENDING'}{u'count':617263.0,u'scan_status':u'DONE'}但是当我尝试按多个键进行分组时出现异常:results=collection.group(key={"scan_status":0,

mongodb - PyMongo 文档中的 "sub-collection"是什么意思?

Thispageinthedocumentation说你可以使用c[name]或c.name访问集合,其中c是一个集合,但子集合到底是什么意思?我在mongodb文档中找不到该术语的任何用法。我假设的是,它获取集合中每个文档的键name的值,并将其表示为自己的集合。是这样吗? 最佳答案 Asubcollection只是在集合名称中使用.作为组织集合名称的一种命名约定。所以用下面的代码:client=pymongo.MongoClient()db=client['mydb']coll=db['test']subcoll=coll['s

python - 如何在 Pymongo 3.2+ 中获取 replSetGetStatus?

我目前正在转换pymongo3.2+驱动程序的更高级别的api。该代码在pymongo2+到3.1中有效。我正在尝试检索管理数据库的replSetGetStatus。据我了解,pymongo3.2+不允许查询管理数据库。我用谷歌搜索了一下,几乎没有发现这个问题。提示我需要使用db.runCommand()方法,但我不确定该怎么做。我的旧pymongo2+-3.1代码。#connection=MongoClientstatus=connection.admin['$cmd'].find_one({'replSetGetStatus':1})我将如何转换该行代码以使用pymongo3.2+

python - Pymongo:如何在文档中插入多个字段的数组?

我正在使用python[pymongo]开发MongoDB。我想在文档中插入多个字段的数组。例如:在下面的集合结构中,我想在所有文档中插入PlacesVisited数组。我不知道它在Mongo的世界里叫什么。所以我可以插入它。如何在文档中插入数组?有人可以帮忙吗?collectionName{"_id":"4564345343","name":"Bunty","BasicIntro":"A.B.C.D.","PlacesVisited":["1":"PalaceofDob","2":"PalaceofVictoria","3":"SaharaDesert"]}{"_id":"45657

python - 在pymongo中查询 "like"

这个问题在这里已经有了答案:HowtoqueryMongoDBwith"like"(45个答案)关闭5年前。我已经对此进行了研究,但找不到我正在尝试的方法不起作用的原因,并且会警告我对python有点陌生,对mongodb也很陌生。我有一个JSON推文的mongo数据库,我试图通过Python和pymongo查询它。我想为所有包含“IP”的推文返回“text”和“created_at”字段。我尝试了以下方法,当我通过终端执行此操作时效果很好:db.tweets.find({text:/IP/},{text:1,created_at:1})在Python中,经过试验我发现我需要将字段名称

mongodb - PyMongo - 名称必须是 Str 的实例

我正在尝试从MongoDBAtlas上的数据库读取和写入,虽然我可以很好地从我的集合中读取数据,但任何写入集合的尝试都会导致PyMongo引发异常“名称必须是str的实例”'.我猜这是对MongoClient对象的引用,但问题是我使用的是连接字符串。谁能帮我解决我做错的事情?我的代码如下:(我有很多注释可以帮助我更好地理解,所以请原谅不够简洁)defsetattributes(self,rowdict):"""afunctiontocreateauser.Assumesthatonlyadatadictisprovided.stripseverythingelseandupdates.