我想使用 MongoDB java api 从 mongodb 文档中的数组获取特定的数组元素记录
I want to fetch specific array element record from array in mongodb document using MongoDB java api
我有一个包含多个数组元素的文档。
我想从数组中找到一些特定的值。
{
"_id" : ObjectId("54a67aa569f2bc6a5865f220"),
"language" : "us_english",
"country" : "united states",
"state" : "texas",
"words" : [
{
"handle" : "gm",
"replacement" : "good morning",
},
{
"handle" : "ilu",
"replacement" : "i love you",
}
]
}
我想找到 replacement
的值,其中 handle is gm
和 language is english
,country is united states
和 state is texas
。
我尝试了很多解决方案,但无法从文档中找到特定值。
有什么解决办法吗??
可以使用聚合运算。
$match
过滤文档
$unwind
解构words
字段
重复使用 $match
来查找 replacement
字段的值
db.collection.aggregate([{$match : {language : 'us_english', country: 'united states', state: 'texas'}}, {$unwind: '$words'}, {$match: {"words.handle" : "gm"}}])
{ "_id" : ObjectId("54a67aa569f2bc6a5865f220"), "language" : "us_english", "country" : "united states", "state" : "texas", "words" : { "handle" : "gm", "replacement" : "good morning" } }
我有一个包含多个数组元素的文档。 我想从数组中找到一些特定的值。
{
"_id" : ObjectId("54a67aa569f2bc6a5865f220"),
"language" : "us_english",
"country" : "united states",
"state" : "texas",
"words" : [
{
"handle" : "gm",
"replacement" : "good morning",
},
{
"handle" : "ilu",
"replacement" : "i love you",
}
]
}
我想找到 replacement
的值,其中 handle is gm
和 language is english
,country is united states
和 state is texas
。
我尝试了很多解决方案,但无法从文档中找到特定值。
有什么解决办法吗??
可以使用聚合运算。
$match
过滤文档$unwind
解构words
字段重复使用
$match
来查找replacement
字段的值db.collection.aggregate([{$match : {language : 'us_english', country: 'united states', state: 'texas'}}, {$unwind: '$words'}, {$match: {"words.handle" : "gm"}}]) { "_id" : ObjectId("54a67aa569f2bc6a5865f220"), "language" : "us_english", "country" : "united states", "state" : "texas", "words" : { "handle" : "gm", "replacement" : "good morning" } }