[英]mongo DB query, how to select a specifi elemet
I have a question for you,我有一个问题问你,
I have some document in my collection "q-1", I would like to extract one element of the table "data".我的集合“q-1”中有一些文档,我想提取表“数据”的一个元素。
to do this, I would like to retrieve the one with the id_propositions field at 19为此,我想检索 id_propositions 字段为 19 的那个
Do you have any idea?你有什么主意吗?
thx in advance提前谢谢
One way to accomplish this is to use $unwind
, which flattens arrays.实现此目的的一种方法是使用$unwind
,它会使 arrays 变平。
Consider the following ( you can also check out a live demo here ):考虑以下内容(您也可以在此处查看现场演示):
[
{
_id: 1,
data: [
{
id_propositions: 10,
desc: "a"
},
{
id_propositions: 19,
desc: "b"
},
{
id_propositions: 19,
desc: "c"
},
{
id_propositions: 10,
desc: "d"
}
]
},
{
_id: 2,
data: [
{
id_propositions: 20,
desc: "z"
},
{
id_propositions: 19,
desc: "x"
},
{
id_propositions: 19,
desc: "y"
},
{
id_propositions: 20,
desc: "w"
}
]
}
]
db.collection.aggregate([
{
$unwind: "$data"
},
{
$match: {
"data.id_propositions": 19
}
}
])
[
{
"_id": 1,
"data": {
"desc": "b",
"id_propositions": 19
}
},
{
"_id": 1,
"data": {
"desc": "c",
"id_propositions": 19
}
},
{
"_id": 2,
"data": {
"desc": "x",
"id_propositions": 19
}
},
{
"_id": 2,
"data": {
"desc": "y",
"id_propositions": 19
}
}
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.