使用node和mongoose插入彼此依赖的文档

时间:2019-07-14 00:43:05

标签: javascript node.js mongodb express mongoose

在使用node和mongoose成功插入其他文档之后,如何插入文档?

示例:我用猫鼬运行一个创建文档,成功输入后,执行另一个创建文档,如果第二个创建文档失败,我将在插入之前“取消”。

我的问题是插入内容相互依赖,如果秒数失败,我可以不删除第一个文档就执行此操作吗?

1 个答案:

答案 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();
    });
  });
});