草庐IT

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.

mongodb - 使用 pymongo 的 MongoDB 的 dateFromString 运算符问题

我对dateFromString运算符有疑问我想使用dateFromString运算符从字符串中解析日期。日期在某个集合的“已发布”字段中我使用的是Python3.6.4,MongoDBshell版本v3.6.2,pymongo'3.6.0'我收到以下错误消息:pymongo.errors.OperationFailure:Unrecognizedexpression'$dateFromString'有人可以帮忙吗?这是我的代码pipeline=[{'$limit':100},{'$project':{'released':{'$cond':{'if':{'$eq':['$releas

mongodb - 如何在我的 Macbook Air 上通过 Python 3.6 连接到 MongoDB Atlas 而不会出现 SSL 握手错误?

我已经设置了一个测试MongoDbAtlas帐户,只是免费帐户之一,在我的Ubuntu机器上使用以下代码我可以成功创建用户并搜索他们。当我在我的MacBookAir上尝试完全相同的操作时,我得到了如下所示的SSL握手。pymongo.errors.ServerSelectionTimeoutError:SSLhandshakefailed:[SSL:CERTIFICATE_VERIFY_FAILED]certificateverifyfailed(_ssl.c:833),SSLhandshakefailed:[SSL:CERTIFICATE_VERIFY_FAILED]certific

mongodb - 单个 MongoDB 查询以聚合计数

我有一个集合peopleColl,其中包含带有人员数据的记录。每条记录都由id唯一索引,并具有数组类型的managers字段。示例:{id:123,managers:[456,789]},{id:321,managers:[555,789]}我想编写一个查询来查找具有相同经理的所有人员,用于多个ID(经理)。因此给定[456,555,789]所需的输出将是:{456:1,555:1,789:2}我可以在Python的for循环中(缓慢地)完成,如下所示:idToCount={id:peopleColl.count({"managers":id})foridinids}编辑:我主要对解决

mongodb - 为什么 PyMongo count_documents 比 count 慢?

在db['TF']中,我有大约6000万条记录。我需要获取记录的数量。如果我运行db['TF'].count(),它会立即返回。如果我运行db['TF'].count_documents({}),我需要很长时间才能得到结果。但是,count方法将被弃用。那么,如何在使用count_documents时快速获取数量呢?有没有我遗漏的参数?我已经阅读了文档和代码,但没有找到。非常感谢! 最佳答案 这不是关于PyMongo,而是关于Mongo本身。count是原生的Mongo函数。它并没有真正计算所有文件。每当您在Mongo中插入或删除一

python - 如何将由 mongo ObjectIds 列表组成的字符串转换为仅包含 ids 的 python 列表

我有一个数据框,其中有一列包含ObjectId列表的字符串表示形式。即:"[ObjectId('5d28938629fe749c7c12b6e3'),ObjectId('5caf4522a30528e3458b4579')]"我想将它从字符串文字转换为python列表,如:['5d28938629fe749c7c12b6e3','5caf4522a30528e3458b4579']json.loads和ast.literal_eval都失败了,因为字符串包含ObjectId 最佳答案 我分享这个正则表达式:https://regex

python - 将一个 MongoDB 的字段与另一个 MongoDB 进行比较时优化速度

我有两个MongoDB,一个数据库urls被收集URL的蜘蛛使用。这个数据库非常大,而且大部分只包含url。第二个数据库posts由扫描url并根据url生成报告的程序使用。我当前用于第二个脚本的代码检查urls数据库中的url当前是否在posts数据库中。如果posts数据库不包含url,则意味着程序仍需要为url生成报告。如果存在,我们将跳过它。这是数据库循环:fordocumentinurls.find():url=document['url'].split('.')[1]ifposts.find({'url':url}).count()==0:print(url,"urlnot

python - mongodb 查找查询返回的结果不一致

我对我的mongodb数据库中的集合运行了以下查询。db.coll.find({field_name:{$exists:true}}).count()返回2437185。db.coll.find({}).count()是2437228。现在,当我运行查询db.coll.find({field_name:{$exists:false}}).count()时,它没有返回43,而是返回了0。我有以下两个问题:上述情况是否意味着我收藏中的数据已损坏?我之前曾在(UpdatingrecordsinMongoDBthroughpymongoleadstodeletionofmostofthem)上

mongodb - pymongo/mongodb 高级查询

我是pymongo/mongodb的新手,现在我遇到了挑战。我在mongodb(v2.04)中存储了以下结构。{"t":,"d":{"uid":,"action":}}此结构跟踪用户操作,与我的原始结构相比,复杂性略有降低。数据非常庞大,查询将有一个限制日期跨度以减少结果。我想要的是能够创建一个表,其中包含在特定时间跨度内执行最多操作的用户。表:RankUid#numactions1523522372343574229到目前为止,我只有查询的零碎部分:query={"t":{"$lte":end_utc,"$gte":start_utc}}db.actions.find(query).