gpt4 book ai didi

MongoDB 查询数组中的对象

转载 作者:可可西里 更新时间:2023-11-01 10:36:08 25 4
gpt4 key购买 nike

我有一个由如下对象组成的集合:

{
"name": "Event One",
"user_id": "1"
"rsvp": [
{"id": "1","name":"John Doe","industry":"Software"},
{"id": "2","name":"John Doe II","industry":"Software"},
]

}

我正在尝试查询用户也有 rsvp 但他没有创建的所有事件。然后将 rsvp 与所在行业进行匹配。是否可以在 mongoDB 中查询并像这样返回:

[
{"id": "1","name":"John Doe"},
{"id": "2","name":"John Doe II"},
]

我的查询如下:

events.find({"$and":[{"rsvp.contact.indusrty":{"$in":["Software","Information Systems"]}},{"user_id":{"$ne":"5d335704802df000076bad97"}}]},{"projection":{"rsvp.contact.name":true},"typeMap":{"root":"array","document":"array"}})

我是 MONGODB 的新手,似乎找不到任何可以帮助我解决这个问题的东西。

最佳答案

你需要$match定义过滤条件,$unwind根据 rsvp$replaceRoot 获取单个文档将 rsvp 提升为根模型:

db.events.aggregate([
{
$match: {
"$and":[
{
"rsvp.industry":{
"$in":["Software","Information Systems"]
}
},
{ "user_id":{"$ne":"5d335704802df000076bad97"}}
]
}
},
{
$unwind: "$rsvp"
},
{
$replaceRoot: {
newRoot: "$rsvp"
}
},
{
$project: {
industry: 0
}
}
])

Mongo Playground

关于MongoDB 查询数组中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57130350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com