【发布时间】:2017-06-28 11:04:40
【问题描述】:
我想$unwind 2 个字段,school 和 home。
数据库结构是这样的;
{
"id" : 1,
"school" : [
{
"path" : "school1",
"code" : "code1",
},
{
"path" : "school2",
"code" : "code2",
},
{
"path" : "school3",
"code" : "code3",
},
{
"path" : "school4",
"code" : "code4",
}
],
"home" : [
{
"path" : "home1",
"code" : "homeCode1",
},
{
"path" : "home2",
"code" : "homeCode2",
},
]
}
我想 $unwind school 和 home 字段并将它们中的每一个都设为;
{
"id" : 1,
"school" : [
{
"path" : "school1",
"code" : "code1",
}
},
{
"id" : 1,
"school" : [
{
"path" : "school2",
"code" : "code2",
}
},
{
"id" : 1,
"school" : [
{
"path" : "school3",
"code" : "code3",
}
},
{
"id" : 1,
"school" : [
{
"path" : "school4",
"code" : "code4",
}
},
{
"id" : 1,
"home" : [
{
"path" : "home1",
"code" : "homeCode1",
}
},
{
"id" : 1,
"home" : [
{
"path" : "home2",
"code" : "homeCode2",
}
}
我写的旨在获取上述格式的查询是;
db.collection.aggregate([
{$unwind: "$school"},
{$unwind: "$home"}
]).pretty()
但query 是成对出现的;
{
"id" : 1,
"school" : {
"path" : "school1",
"code" : "code1"
},
"home" : {
"path" : "home1",
"code" : "homeCode1"
}
}
{
"id" : 1,
"school" : {
"path" : "school1",
"code" : "code1"
},
"home" : {
"path" : "home2",
"code" : "homeCode2"
}
}
{
"id" : 1,
"school" : {
"path" : "school2",
"code" : "code2"
},
"home" : {
"path" : "home1",
"code" : "homeCode1"
}
}
{
"id" : 1,
"school" : {
"path" : "school2",
"code" : "code2"
},
"home" : {
"path" : "home2",
"code" : "homeCode2"
}
}
{
"id" : 1,
"school" : {
"path" : "school3",
"code" : "code3"
},
"home" : {
"path" : "home1",
"code" : "homeCode1"
}
}
{
"id" : 1,
"school" : {
"path" : "school3",
"code" : "code3"
},
"home" : {
"path" : "home2",
"code" : "homeCode2"
}
}
{
"id" : 1,
"school" : {
"path" : "school4",
"code" : "code4"
},
"home" : {
"path" : "home1",
"code" : "homeCode1"
}
}
{
"id" : 1,
"school" : {
"path" : "school4",
"code" : "code4"
},
"home" : {
"path" : "home2",
"code" : "homeCode2"
}
}
我怎样才能分别$unwind 2 个字段,而不是这种结果对格式?
【问题讨论】:
-
为什么要投反对票?这不是一个很好解释和直接的问题吗?还是已经回答了,重复?
标签: mongodb mongodb-query aggregation-framework