在使用node和mongoose成功插入其他文档之后,如何插入文档?
示例:我用猫鼬运行一个创建文档,成功输入后,执行另一个创建文档,如果第二个创建文档失败,我将在插入之前“取消”。
我的问题是插入内容相互依赖,如果秒数失败,我可以不删除第一个文档就执行此操作吗?
答案 0 :(得分:0)
通过回调方法完成第一个文档的插入后,您只需插入第二个文档即可。在下面查看我的示例,
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
//creating database connection
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb"); // Your database name
var myobj = { name: "Company Inc", address: "Highway 37" }; //first document
dbo.collection("customers").insertOne(myobj, function(err, firstDocumentId) {
if (err) throw err; //error while inserting first document
// first insertion successful
console.log("1 document inserted in customer table");
//second document
var logObj = { msg: "First Document Created", firstDocumentId: firstDocumentId }; //second document
dbo.collection("logs").insertOne(logObj, function(err, secondDocumentId) {
if (err) {
console.log("second document insertion failed");
dbo.collection("customers").remove({_id:firstDocumentId});
throw err;
}
console.log("2 document inserted in logs table");
db.close();
});
});
});