mongoDB Compass 不同查询未呈现任何结果
mongoDB Compass distinct query renders no results
我一直在尝试针对我在 Atlas 中的 mongoDB collection 编写不同的查询。
我想获取在其“MetaData”parent 属性下的“Section”属性中捕获的所有不同值的列表。根据 mongoDB documentation 获取不同值数组的语法如下:
{ distinct: "<collection>", key: "<field>" }
我的示例 collection 名为“简单”,包含以下文档
[{
"_id": "527c61082241f813c09c722c",
"MetaData": {
"Type": "BlogPost",
"Author": "author1",
"Section": "section1"
},
"Title": "title 1",
"Description": "..."
},
{
"_id": "527c61082241f813c09c7050",
"MetaData": {
"Type": "BlogPost",
"Author": "author1",
"Section": "section1"
},
"Title": "title 2",
"Description": "..."
},
{
"_id": "527c61082241f813c09c7042",
"MetaData": {
"Type": "BlogPost",
"Author": "author1",
"Section": "section2"
},
"Title": "title 3",
"Description": "..."
}
]
然而,当我在 Compass 或 Atlas 中执行以下过滤器查询时 - 没有返回任何结果???
{distinct: 'simple',key: 'MetaData.Section'}
我期待一个包含“section1”和“section2”的数组
谁能告诉我我做错了什么
谢谢
您需要使用罗盘的聚合框架来获取不同的值
{
$group:{
"_id": null,
"sections": { $addToSet: "$MetaData.Section"}
}
}
我一直在尝试针对我在 Atlas 中的 mongoDB collection 编写不同的查询。
我想获取在其“MetaData”parent 属性下的“Section”属性中捕获的所有不同值的列表。根据 mongoDB documentation 获取不同值数组的语法如下:
{ distinct: "<collection>", key: "<field>" }
我的示例 collection 名为“简单”,包含以下文档
[{
"_id": "527c61082241f813c09c722c",
"MetaData": {
"Type": "BlogPost",
"Author": "author1",
"Section": "section1"
},
"Title": "title 1",
"Description": "..."
},
{
"_id": "527c61082241f813c09c7050",
"MetaData": {
"Type": "BlogPost",
"Author": "author1",
"Section": "section1"
},
"Title": "title 2",
"Description": "..."
},
{
"_id": "527c61082241f813c09c7042",
"MetaData": {
"Type": "BlogPost",
"Author": "author1",
"Section": "section2"
},
"Title": "title 3",
"Description": "..."
}
]
然而,当我在 Compass 或 Atlas 中执行以下过滤器查询时 - 没有返回任何结果???
{distinct: 'simple',key: 'MetaData.Section'}
我期待一个包含“section1”和“section2”的数组
谁能告诉我我做错了什么
谢谢
您需要使用罗盘的聚合框架来获取不同的值
{
$group:{
"_id": null,
"sections": { $addToSet: "$MetaData.Section"}
}
}