У нас есть коллекции в следующем форматеMongoDB Еогеасп для вложенной коллекции, чтобы обновить/копировать документы в другую коллекцию
{
"_id" : ObjectId("5640bdec1b988de0be31724e"),
"xyz" : "Toshiba Satellite Pro 4600 PIII800",
"Manufacture": "Toshiba"
"mappingData" : {
"title" : "xyz"
"brand" : "manufacture"
},
"_id" : ObjectId("5640bdec1b9435dfgdf43554b"),
"abc" : "Apple Ihone",
"mappingData" : {
"title" : "abc",
"brand" : "Company"
}
}
Я хочу написать запрос и ожидая результатов запроса, чтобы создать еще одну коллекцию следующих документов.
{
"title": "Toshiba Satellite Pro 4600 PIII800",
"Manufacture":"Toshiba"
}
{
"title": "Apple Ihone",
"Manufacture":"Apple"
}
Я сформировал запрос, чтобы получить ожидаемые результаты, но возвращая ошибку.
db.products.find().limit(5).forEach(function(myDoc) {
var q = {};
myDoc.mappingData.array.forEach(function(doc){
q[doc]= myDoc[myDoc.mappingData.doc];
})
print(q);
//q will be inserted to new collection.
})
Возвращение ошибка "TypeError: myDoc.mappingData.array has no properties (shell):3"
Пожалуйста, помогите мне решить эту проблему.
Почему вы используете динамический ключ в своих документах? Это очень плохая идея. – styvane
Именно так поступают данные из источников, и решение запроса будет удалять динамический ключ и иметь прямые данные в другой коллекции. –
Но это не то, о чем вы просите. Вы должны изменить свой вопрос, чтобы сказать, что хотите изменить структуру документов. – styvane