如何在mongodb中更新记录?

如何在mongodb中更新记录?,mongodb,mongodb-query,Mongodb,Mongodb Query,收藏 'message':[{ 'records':[{ 'text':'aaa in stack overflow' }] }] db.collection('message').find().forEach(function(err,doc) { doc.records.forEach(function(link){ var text = link.text.replace('aaa', 'bbb'); db.collec

收藏

'message':[{ 
   'records':[{
    'text':'aaa in stack overflow'
  }]
 }]   

db.collection('message').find().forEach(function(err,doc) {
    doc.records.forEach(function(link){
        var text = link.text.replace('aaa', 'bbb');
        db.collection('message').updateOne({_id: doc._id}, { '$set': { 'text': text } });
    });
});
我得到了TypeError:对象摇摆的属性“collection”不是一个函数

我做错了什么?

试试这个:

db.collection('message').find().forEach(function(err,doc) {
    doc.records.forEach(function(link){
        link.text = link.text.replace('aaa', 'bbb');
        link.save();
    });
});

它将更新属性并调用save()

你能用一些显示你的收集结构的示例文档准确地解释一下你想在这里实现什么吗?@chridam添加了收集结构,我无法获得收集对象为什么我得到这个错误属性对象摆动的“collection”不是一个函数。这个对象摆动是什么?在你的更新中,是“message”字段(数组)是否也是文档结构的一部分?您能否显示执行
db.getCollection('message').findOne()查询时的结果?如果是mongo shell查询,那么错误是由于以下语句导致的:db.collection('message').find()
,应该是
db.getCollection('message').find()
,或者仅仅是
db.message.find()