首先我的文檔的結構:如何使用Monk更新JavaScript中的forEach循環中的文檔?
{
"_id": "541a8bea74123744b371d38e",
"geometry": {
"type": "Point",
"coordinates": [
5.3435,
51.69554
]
},
"type": "Feature",
"properties": {
}
}
的事情是我想用更新功能在foreach循環中添加一個字段。循環工作,我可以迭代集合中的每個文檔,但更新函數什麼也不做。這是我的:
var counter = 0;
collection.find({}, {
stream: true
})
.each(function(doc) {
counter++;
var hash = geohash.encode(doc.geometry.coordinates[1], doc.geometry.coordinates[0], precision = 9);
console.log("id: " + doc._id + " hash: " + hash + " counter= " + counter);
collection.update({
_id: doc._id
}, {
$set: {
"properties.geohash.precision9": hash
}
},
function(err) {
if (err) console.log(err);
}
);
})
.error(function(err) {
// handle error
console.log(err);
})
.success(function(doc) {
// final callback
console.log("added geohash");
res.send({
objects: doc
});
});
我在哪裏錯了?
的東西是保存方法更新或插入MongoDB中的文件是否存在或不是一個ID。因此在Monk中你有更新或插入命令。 – justauser 2014-10-29 15:38:14
您可以使用** db.collection.update(item._id,item)**; – Disposer 2014-10-29 15:49:46