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);
}
可能重复的