Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Mongoose-插入两个集合:一个依赖于另一个的ID_Node.js_Mongodb_Collections_Insert_Mongoose - Fatal编程技术网

Node.js Mongoose-插入两个集合:一个依赖于另一个的ID

Node.js Mongoose-插入两个集合:一个依赖于另一个的ID,node.js,mongodb,collections,insert,mongoose,Node.js,Mongodb,Collections,Insert,Mongoose,我有一个要插入数据库的对象数组: tracks = [new Track({name : "myname1"}), new Track({name : "myname2"})] Track.collection.insert(tracks, {}, function(err, tracks){ console.log('err', err); } 但是,即使数组中有两个对象,insert()方法也会抛出一个错误:

我有一个要插入数据库的对象数组:

        tracks = [new Track({name : "myname1"}), new Track({name : "myname2"})]

        Track.collection.insert(tracks, {}, function(err, tracks){   
             console.log('err', err);
        }
但是,即使数组中有两个对象,insert()方法也会抛出一个错误:

[RangeError: Maximum call stack size exceeded]
(已创建“跟踪”文档,但其中没有任何内容。)

编辑 解决第一个问题,但不解决我真正的问题:

从模型创建对象时,可以获取_id,我使用它创建其他对象。但是不可能插入Mongoose对象的集合,因为解决的问题是:您必须只使用数组JSON对象

data.items.forEach(function(item,index){
    tracks.push(new Track({name : "myname1"}) );
    posts.push(new Post({trackId : track._id}) );
}

Track.collection.insert(tracks, {}, function(err, tracks){   
         console.log('err', err);
    }

我找到的解决方案是创建自己的唯一Id,而不是获取mongoose对象的Id…并使用JSON对象:

data.items.forEach(function(item,index){
    tracks.push({name : "myname1"}) ); //name is unique
    posts.push({trackId : track.name) );
}

Track.create(tracks, function(err){   
         console.log('err', err);
}
可能重复的