如何从字典中搜索列表中的特定字符串,并在mongodb中返回包含该字符串的所有元素?

2024-04-25 15:15:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我的字典有这样的结构:

{"_id":"name","tweets:[tweet1, tweet2, tweet,3]}

我需要执行一个查询,返回具有特定字符串的tweet。假设tweet2包含字符串“hello”,我希望其他字典中的所有tweet都包含该字符串

我一直在使用以下查询来执行此操作,但它没有给出正确的结果:

db.collection.find({"tweets":{{$elemMatch:{$regex:".*hello*."}}})

谢谢你的帮助


Tags: 字符串nameidhellodb字典find结构
1条回答
网友
1楼 · 发布于 2024-04-25 15:15:55

您只需按以下步骤进行操作:

db.collections.find({tweets: {$regex: new RegExp('^.*' + "tweet2" + '.*', 'i')}}, {tweets: {$elemMatch: {$regex: new RegExp('^.*' + "tweet2" + '.*', 'i')}}})

但是,$elemMatch投影操作符提供了另一种方法来更改返回的文档,使其仅包含第一个匹配的tweets元素

也可以通过位置($)操作符获得相同的输出

如果在投影过程中需要筛选数组(其中包括所有匹配项),而不是仅筛选第一个匹配项,则可以使用$filter聚合运算符

希望它能起作用

相关问题 更多 >