大佬教程收集整理的这篇文章主要介绍了MongoDB - 读取数组对象并仅返回匹配的对象,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想编写一个 mongodb 查询,它允许我像在关系数据库中一样根据 IN/OR 条件获取数组对象字段。如果我的收藏中有以下文档,我想阅读 ('user','bot') 中的所有“events.event”
{_ID: 1,sender_ID:100,"events" : [
{
"event" : "action","timestamp" : 1619463803.7244627,"name" : "abc1"
},{
"event" : "user","name" : "abc2"
},{
"event" : "bot","name" : "abc3"
}
}
我使用了以下查询,但它一次只适用于一个事件。这可以修改为
考虑 event = 'user'
还是 event = 'bot'
?我们还可以投射 events.event
和 events.timestamp
连同这个elemmatch
;一口气完成?
db.conversations.find(
{"events.event": "bot"},{_ID: 0,sender_ID:1,events: {$elemmatch: {event: "bot"}}});
你有很多选择
最简单的一种,它使用 SQL queries
运算符模拟您对 IN
的看法
db.putCollectionNameHere.aggregate([
{ $match: { _id: 1 } },{ $unwind: '$events' },{ $match: { 'events.event': { $in: ['user','bot'] } } },]);
关于 $unwind documentation 说
$放松
从输入文档中解构一个数组字段以输出一个 每个元素的文档。每个输出文档都是输入文档 用元素替换数组字段的值。
以上是大佬教程为你收集整理的MongoDB - 读取数组对象并仅返回匹配的对象全部内容,希望文章能够帮你解决MongoDB - 读取数组对象并仅返回匹配的对象所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。