私は2つのコレクションを持っています。MongoDB - 集約2集
コレクションの最初の 'firmaListesi'
{
"_id" : ObjectId("58455d2d506c1cab1c82153c"),
"value" : {
"firmaid0" : ObjectId("58455d92506c1cab1c82153e"),
"firmaid1" : ObjectId("5847afe2506c912e6e3a72a7"),
"firmaid2" : ObjectId("5850f2e725108a44a813f93f"),
"firmaid3" : ObjectId("58523f272510fae3c1345547")
}
}
{
"_id" : ObjectId("58455d2d506c1cab1c82154c"),
"value" : {
"firmaid0" : ObjectId("5850f2e725108a44a813f93f"),
"firmaid1" : ObjectId("58523f272510fae3c1345547")
}
}
コレクションの第二: 'calisanSayisi'
{
"_id" : ObjectId("58455d92506c1cab1c82153e"),
"value" : 13.0
}
{
"_id" : ObjectId("5850f2e725108a44a813f93f"),
"value" : 1.0
}
{
"_id" : ObjectId("58523f272510fae3c1345547"),
"value" : 3.0
}
私は「calisanSayisiとの関係になりたいです。 _id 'と' firmaListesi.value.firmaid 'となります。このように2つのコレクションを結合したいと思います。私が書いたコードには誤りがあります。しかし、1つのエリアではこれが機能します。あなたは私が写真でもっと欲しいものを見ることができます。私はすべての分野の写真を撮りたい。
マイ結果
{
"_id" : ObjectId("58455d2d506c1cab1c82153c"),
"value" : {
"firmaid0" : ObjectId("58455d92506c1cab1c82153e"),
"firmaid1" : ObjectId("5847afe2506c912e6e3a72a7"),
"firmaid2" : ObjectId("5850f2e725108a44a813f93f"),
"firmaid3" : {
"_id" : ObjectId("58523f272510fae3c1345547"),
"value" : 3.0
}
}
}
{
"_id" : ObjectId("58455d2d506c1cab1c82154c"),
"value" : {
"firmaid0" : ObjectId("5850f2e725108a44a813f93f"),
"firmaid1" : ObjectId("58523f272510fae3c1345547")
}
}
マイコード:
function birlestir(a,b) {
db.firmaListesi.aggregate([
{$lookup: {
from: "calisanSayisi",
localField: a,
foreignField: "_id",
as: a
}},
{$unwind: {path: b, preserveNullAndEmptyArrays: true}},
{$out: "firmalarId"}
]);
}
for(var i=0; i < (Object.keys(db.firmalistesi.value).length); i++){
var a = 'value.firmaid'+i;
var b = '$'+a;
birlestir(a,b);
}
コード内の主要な障害があります。しかし、私は解決策を見つけることができません。手伝ってくれる?
EDIT
'firmaListesi' アレイ
{
"_id" : ObjectId("58455d2d506c1cab1c82153c"),
"value" : [
ObjectId("58455d92506c1cab1c82153e"),
ObjectId("5847afe2506c912e6e3a72a7"),
ObjectId("5850f2e725108a44a813f93f"),
ObjectId("58523f272510fae3c1345547")
]
}
{
"_id" : ObjectId("58455d2d506c1cab1c82154c"),
"value" : [
ObjectId("5850f2e725108a44a813f93f"),
ObjectId("58523f272510fae3c1345547")
]
}
'firmaListesi'コレクションの' value'フィールドをオブジェクトであり、配列ではない背景には何があるのでしょうか。 –
解決策を探しているうちにすべてを試すといえます。 :)配列として解決策がある場合、配列に戻すことができます。 – forguta