我使用的是Mongo的本机节点驱动程序。对于像:
这样的upsertcollection.update(query, setData, { upsert: true }, callback);
有没有办法确定upsert是插入还是更新?使用Mongo shell,您可以返回WriteResult.nUpserted
来确定这一点,但我不确定如何从节点本机驱动程序获取该信息。
http://docs.mongodb.org/manual/reference/method/WriteResult/#WriteResult.nUpserted
感谢。
答案 0 :(得分:1)
您应该能够通过检查传递给回调的第三个参数来找到:
collection.update(query, setData, {upsert: true}, function(err, nAffected, raw) {
if (err) throw err;
console.dir(raw);
// raw will contain updatedExisting and the inserted item _id (if applicable)
});