use*_*151 6 mongodb mongodb-query
我发现mongodb聚合框架非常强大 - 它似乎是一个很好的选择来展平对象.我的模式在名为materials的数组中使用了一个子对象数组.材料的数量是可变的,但特定的字段(类别)在数组中的对象之间是唯一的.我想使用聚合框架来展平结构,并根据类别字段的值动态重命名字段.我找不到一个简单的方法来实现这个使用$项目和$ cond.有办法吗?
物质对象数组的原因是允许简单搜索:
例如{'materials.name':'XYZ'}拉回找到XYZ的任何文件.
例如文件之前和之后
{
"_id" : ObjectId("123456"),
"materials" : [
{
"name" : "XYZ",
"type" : "Red",
...
"category" : "A"
},
{
"name" : "ZYX",
"type" : "Blue",
...
"category" : "B"
}]
}
Run Code Online (Sandbox Code Playgroud)
至
{
"material_A_name" : "XYZ",
"material_A_type" : "Red",
...
"material_B_name" : "ZYX",
"material_B_type" : "Blue",
...
}
Run Code Online (Sandbox Code Playgroud)
在jira https://jira.mongodb.org/browse/SERVER-5947中有关于此类内容的请求- 如果您想拥有此功能,请将其投票.
同时,如果您事先知道密钥的可能值(即"类别"的所有唯一值),并且我的博客上有一些示例代码,则有一种解决方法.
| 归档时间: |
|
| 查看次数: |
1749 次 |
| 最近记录: |