gpt4 book ai didi

mongodb - 如何在 MongoDB 中查询字典数组?

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

我有一组字典,我必须对其进行查询。查询将类似于“name”为“a”时“value”应为“2”。

{
"t": "m",
"y": "n",
"A":[
{
"name": "x",
"value": "1"
},
{
"name": "y",
"value": "2"
},
{
"name": "z",
"value": "1"
}
]
}

在上面,我想知道当“name”为x时,“value”为“1”的记录是什么。我还需要进行查询,例如,“name”是“x”,那么 value 应该是“2”,“name”是“y”,那么“value”应该是“1”

最佳答案

你必须使用 $elemMatch如果要查询嵌入文档的多个字段,则查询数组中的嵌入文档。所以你的查询应该是这样的:

db.collection.find( {
"A": { $elemMatch: { name: "x", value: "1" } }
})

如果您想要查询具有(name:"x", value:"1") (name:"y", value: "2") 在同一查询中,您可以像这样将 $or 与 elemMatch 一起使用:

db.collection.find( {
$or: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})

如果您想要查询具有(name:"x", value:"1") (name:"y", value: "2") 在同一查询中,您可以像这样将 $and 与 elemMatch 一起使用:

db.collection.find( {
$and: [
{ "A": { $elemMatch: { name: "x", value: "1" } } },
{ "A": { $elemMatch: { name: "y", value: "2" } } }
]
})

关于mongodb - 如何在 MongoDB 中查询字典数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46418832/

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