2024-04-25 15:15:55 发布
网友
我的字典有这样的结构:
{"_id":"name","tweets:[tweet1, tweet2, tweet,3]}
我需要执行一个查询,返回具有特定字符串的tweet。假设tweet2包含字符串“hello”,我希望其他字典中的所有tweet都包含该字符串
我一直在使用以下查询来执行此操作,但它没有给出正确的结果:
db.collection.find({"tweets":{{$elemMatch:{$regex:".*hello*."}}})
谢谢你的帮助
您只需按以下步骤进行操作:
db.collections.find({tweets: {$regex: new RegExp('^.*' + "tweet2" + '.*', 'i')}}, {tweets: {$elemMatch: {$regex: new RegExp('^.*' + "tweet2" + '.*', 'i')}}})
但是,$elemMatch投影操作符提供了另一种方法来更改返回的文档,使其仅包含第一个匹配的tweets元素
也可以通过位置($)操作符获得相同的输出
如果在投影过程中需要筛选数组(其中包括所有匹配项),而不是仅筛选第一个匹配项,则可以使用$filter聚合运算符
希望它能起作用
您只需按以下步骤进行操作:
但是,$elemMatch投影操作符提供了另一种方法来更改返回的文档,使其仅包含第一个匹配的tweets元素
也可以通过位置($)操作符获得相同的输出
如果在投影过程中需要筛选数组(其中包括所有匹配项),而不是仅筛选第一个匹配项,则可以使用$filter聚合运算符
希望它能起作用
相关问题 更多 >
编程相关推荐