У меня три коллекции. Я хочу объединить все три документа коллекции на основе номера мобильного телефона, если они совпадают, в противном случае добавить в качестве нового документа и сохранить их в новой коллекции.
(1) Коллекция пользователя
[
{id: ObjectId(...), name:"john", mobile:1234, city:"London"},
{id: ObjectId(...), name:"mike", mobile:1111, city:"Berlin"},
{id: ObjectId(...), name:"jenny", mobile:2222, city:"Paris"},
]
(2) Коллекция хобби
[
{id: ObjectId(...), hobby:"hockey", mobile:1111},
{id: ObjectId(...), hobby:"cricket", mobile:1234},
{id: ObjectId(...), hobby:"movies", mobile:6666},
]
(3) Коллекция ключевых слов
[
{id: ObjectId(...), keyword:"cr", mobile:1234},
{id: ObjectId(...), keyword:"hk", mobile:2222},
{id: ObjectId(...), keyword:"uk", mobile:7777}
]
Хотя мне удалось объединить все три коллекции документов в один.
db.finalCollection.save(db.users.find().toArray());
db.finalCollection.save(db.hobbies.find().toArray());
db.finalCollection.save(db.keyword.find().toArray());
Но я не знаю, как объединить документы с одним и тем же номером мобильного телефона и в случае несоответствия добавить в качестве нового документа.
Мой ожидаемый результат:
[
{id: ObjectId(...), name:"john", mobile:1234, city:"London",
hobby:"cricket",keyword:"cr"},
{id: ObjectId(...), name:"mike", mobile:1111, city:"Berlin",
hobby:"hockey"},
{id: ObjectId(...), name:"jenny", mobile:2222, city:"Paris",
keyword:"hk"},
{id: ObjectId(...), hobby:"movies", mobile:6666},
{id: ObjectId(...), keyword:"uk", mobile:7777}
]