У меня есть объект MongoDB, как это:Как добавить дополнительный элемент во все вложенные массивы объекта MongoDB?
[
{ poster_ip: '127.0.0.1',
post_body: 'example',
_id: 54fc1f7808bac08f6d25f24b,
__v: 0 },
{ poster_ip: '127.0.0.1',
post_body: 'example',
_id: 54fc1f7808bac08f6d25f24a,
__v: 0 }
]
как я могу добавить дополнительный элемент для каждого вложенного массива, поэтому было бы так:
[
{ poster_ip: '127.0.0.1',
post_body: 'example',
_id: 54fc1f7808bac08f6d25f24a,
__v: 0,
newName: NewValue },
{ poster_ip: '127.0.0.1',
post_body: 'example',
_id: 54fc1f7808bac08f6d25f24b,
__v: 0,
newName: NewValue },
]
Я попытался это, но он не сделал работа:
for(var i=0; i<JSONobject.length; i++){
JSONobject[i].newName= NewValue;
}
Я использую node.js, объект - результат, который я получаю из запроса mongodb.
Вот функция:
exports.Posts = function(UserID, PostID, callback) {
Post.find({ post: PostID } , function(err, results) {
var r = results.toObject(); //here i get error 'has no method toObject'
for (var i=0; i<r.length; i++){
r[i].newName = "NewValue";
}
console.log(r);
//i don't see any changes here with console.log
return callback(null, results);
});
}
EDIT:
После немного больше исследований я обнаружил, что возвращаемый Mongoose документ не является объектом JSON, поэтому я пытаюсь в настоящее время чтобы преобразовать его в объект.
Итерация на основе 'JSONobject.length' и изменение' результатов [я] '? – thefourtheye
Существуют серьезные семантические проблемы, из-за которых трудно следовать за вами. Является ли 'JSONobject' массивом Javascript? Это буквальный, который вы впервые пишете в своем вопросе? Тогда что значит «результаты»? –
Цикл 'for', который вы разместили, выглядит отлично. Что заставляет вас думать, что это не сработало? – Pointy