Ít nhất trong shell, bạn có thể phân biệt tài liệu đã được sửa đổi hay chưa (xem nModified
).
> db.test4.update({_id:2}, {$addToSet: {tags: "xyz" }})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.test4.update({_id:2}, {$addToSet: {tags: "xyz" }})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
Cập nhật cho Node
Khi bạn sử dụng collection.update(criteria, update[[, options], callback]);
bạn có thể truy xuất số lượng bản ghi đã được sửa đổi.
Từ nút tài liệu
Một bản cập nhật khác
Có vẻ như ít nhất trong phiên bản 1.4.3, trình điều khiển Mongo Node bản địa không hoạt động như được ghi lại. Có thể khắc phục bằng cách sử dụng API hàng loạt (được giới thiệu trong Mongo 2.6):
var col = db.collection('test');
// Initialize the Ordered Batch
var batch = col.initializeOrderedBulkOp();
batch.find({a: 2}).upsert().updateOne({"$addToSet": {"tags": "newTag"}});
// Execute the operations
batch.execute(function(err, result) {
if (err) throw err;
console.log("nUpserted: ", result.nUpserted);
console.log("nInserted: ", result.nInserted);
console.log("nModified: ", result.nModified); // <- will tell if a value was added or not
db.close();
});