MongoDB两个相同的logging

我正在做一个由Nodejs和MongoDB支持的项目。 我对MongoDB相当陌生,而且我不知道为什么当我做文章的时候,我经常(几乎总是)在集合中获得两个相同的logging。 这两个logging只是ID不同,例如ObjectId("53aefb0fc68a0810504d2066")53aefb0fc68a0810504d2066 ,这是正常的还是我做错了什么? 感谢任何指针。

这是一些节点代码:

server.js:

 app.post("/:collection", function (req, res) { var object = req.body; var collection = req.params.collection; collectionDriver.save(collection, object, function (err, docs) { if (err) { res.send(400, [err, object]); } else { res.send(201, docs); } }); }); 

collectionDriver:

 save: function(collectionName, obj, callback) { this.getCollection(collectionName, function(error, the_collection) { if( error ) callback(error); else { obj.created_at = new Date(); the_collection.insert(obj, function() { callback(null, obj); }); } }); }, getCollection: function(collectionName, callback) { this.db.collection(collectionName, function(error, data) { if (error) { callback(error); } else { callback(null, data); } }); }, 

每当您要求MongoDB save一个没有_id字段的对象时,它会自动为该字段生成一个新的,全局唯一的ObjectID,并将该对象保存在该ObjectID下。

当您想要使用save来更新现有的文档时,您需要确保_id字段使用要更新的文档的_id填充。

或者,您可以在那些您认为相关的字段上创build唯一的索引 ,以确定什么是重复的,哪些不重复。 但是,在这种情况下,尝试保存已经存在的文档将会引发错误而不是replace文档。