Я пытаюсь преобразовать объект документов mongoDB в массив с теми же данными. У меня есть документ, структурированный следующим образом:
{
_id:"43434",
fistname: 'Bob',
lastname: 'Toto',
address: { city: "cityName", postalCode: "000000", streetName: "streetname" },
}
И я хочу реструктурировать свои данные следующим образом:
{
_id:"43434",
fistname: 'Bob',
lastname: 'Toto',
address: [{ city: "cityName", postalCode: "000000", streetName: "streetname" }],
}
Как мне этого достичь? Могу ли я использовать $project (агрегирование) монго?
1
Dave
23 Окт 2019 в 17:22
Если вы хотите записать результаты обратно в коллекцию, агрегат вам не поможет, если только вы не используете версию <4.2. в предыдущих версиях есть $out, но я бы не предпочел, так как это разрушительно, потому что он перезапишет коллекцию новыми данными. Вы можете увидеть адрес, преобразованный в массив со значением как null (это происходит, если у вас нет адреса в первую очередь) !! Пожалуйста, проверьте приведенную выше ссылку, она должна вам помочь, или, если вы используете версию 4.2, используйте $merge в агрегации!
– whoami - fakeFaceTrueSoul
23 Окт 2019 в 18:07
1 ответ
Попробуйте этот запрос
db.tester.aggregate(
[
{$match:{"_id":ObjectId("5db06342f079fa02a63adaf8")}},
{
$project: {
fistname: 1,
lastname:1,
address: [{ city:'$address.city','postalCode':'$address.postalCode',streetName:'$address.streetName'}]
}
}
]
)
1
Mahesh Bhatnagar
23 Окт 2019 в 17:38
1
Пожалуйста, попробуйте этот запрос
– Mahesh Bhatnagar
23 Окт 2019 в 17:39
Похожие вопросы
Связанные вопросы
Новые вопросы
mongodb
MongoDB - это масштабируемая, высокопроизводительная база данных NoSQL с открытым исходным кодом, ориентированная на документы. Он поддерживает большое количество языков и платформ разработки приложений. Вопросы по администрированию сервера можно задать на https://dba.stackexchange.com.