更新logging不会持续在mongo数据库(nodejs + mongo)

到目前为止我还没有find答案(包括我自己的努力和在线)。

这是一个NodeJS代码片段,在后端使用mongodb。

在代码中,我迭代(mongo)集合并更新每条logging中的特定字段。

我无法坚持,更改logging到数据库。

代码: –

var mongoose = require('mongoose') ; var Centers = mongoose.model('centers', new mongoose.Schema({ "ChestClinic": String, "TestCenterName": String, ... "loc": { "type": { "lon": Number, "lat": Number }, "index": '2d' } }); mongoose.connect("mongodb://localhost/tblabsdb"); Centers.find({}, function(err, recs) { var me = this ; async.forEachSeries ( recs, function(rec, callback) { var loc = { lon: 100, lat: 100 }; rec.setValue ( 'loc', loc); rec.save ( function (err, rec) { if ( !err ) { console.log( rec ); } else { console.log ( 'Error while saving' ); } callback(); }); }, function(err) { console.log ( '\ncomplete' ); process.exit(); }); }) 

当我使用mongo命令在shell中打开这个数据库时,我看到的“loc”的值仍然是0,0(而不是100,100)。

欣赏任何修复它的build议。

感谢海军

loc是混合types字段。 当你改变这些时,Mongoose需要被告知在保存之前字段已经改变:

 rec.setValue('loc', loc); rec.markModified('loc'); rec.save(...); 

为什么在这里解释 。