私はMongoDBの世界で初めてです。親組織に割り当てられた子組織の数を数える方法を理解しようとしています。MongoDBの親組織にいくつの子組織が割り当てられているのかを調べる必要があります
{
"_id" : "001",
"parentOrganization" : {
"organizationId" : "pOrg1"
},
"childOrganization" : {
"organizationId" : "cOrg1"
}
}、
{
"_id" : "002",
"parentOrganization" : {
"organizationId" : "pOrg1"
},
"childOrganization" : {
"organizationId" : "cOrg2"
}
}、
{
"_id" : "003",
"parentOrganization" : {
"organizationId" : "pOrg2"
},
"childOrganization" : {
"organizationId" : "cOrg3"
}
:私はこの一般的な構造を有する文書を有します
各ドキュメントには、関連付けられたchildOrganizationを持つparentOrganizationがあります。 parentOrganizationは同じですが、異なるchildOrganizationsを持つ複数のドキュメントが存在することがあります。また、同じ親子関係を持つ複数の文書が存在することもあります。さらに、子組織が複数の親組織に関連する場合もあります。
私はparentOrganizationでグループ化し、各parentOrganizationに関連付けられた一意のchildOrganizationの数を数え、ユニークなIDを表示しようとしています。
私は$ matchと$ groupで集計フレームワークを使用しようとしましたが、私は子組織の部分に数えられません。私が現在試みていることは次のとおりです。
var s1 = {$ parent:{{parentOrganization.organizationId ":{$ exists:true}}};
var s2 = {$ group:{$ id: "$ parentOrganization.organizationId"}}};
db.collection.aggregate(s1、s2);
私の結果はparentOrganizationを戻ってきているが、私の$の合計は、関連するchildOrganizationsの数を返していません。
/* 1 */ { "_id": "pOrg1"、 "カウント":0 }
/* 2 */ { "_id": "pOrg2"、 "カウント":0 }
が、私はそれが少し複雑である感覚を得ます私の限られた知識よりも現時点でアクセスが可能です。このクエリでは、どのような詳細がありませんか?