我试图找出为什么我的ReST服务器不会向集合中插入多个文档。
以下工作正常,但如果我尝试创建一个稍微不同的新文档,则不会发生任何事情。
Cruds.prototype.save = function(collectionName, obj, callback) {
console.log('obj', obj);
this.getCollection(collectionName, function(error, the_collection) {
if( error ) callback(error)
else {
obj.created_at = new Date();
the_collection.insert(obj, {safe: true}, function() {
callback(null, obj);
});
}
});
};
在上面,只需检查集合并插入文档。当我启动服务器并发布到它时,只能工作一次。后续帖子不保存。连接是否自动关闭?有什么想法吗?
谢谢!
答案 0 :(得分:0)
发现问题。记录之后,我意识到ObjectId没有在insert上唯一生成(我没有真正期望),从而创建了唯一的密钥冲突。解决方案是将ObjectId与插入一起传递,如下所示:
Cruds.prototype.save = function(collectionName, obj, callback) {
console.log('obj', obj);
this.getCollection(collectionName, function(error, the_collection) {
if( error ) callback(error)
else {
obj._id = ObjectID();
obj.created_at = new Date();
var document = merge(schema.user, obj);
the_collection.insert(document, {safe: true}, function(err, result) {
callback(err, result);
});
}
});
};