mongoose – 插入两个集合:一个是ID依赖于另一个

我有一个数组我想在我的数据库中插入:

tracks = [new Track({name : "myname1"}), new Track({name : "myname2"})] Track.collection.insert(tracks, {}, function(err, tracks){ console.log('err', err); } 

但即使数组中有2个对象,insert()方法也会抛出一个错误:

 [RangeError: Maximum call stack size exceeded] 

(“track”doc是创build的,但没有任何内容。)

编辑 Mongoose – RangeError:最大调用堆栈大小超过解决第一个问题,但没有解决我真正的问题:

当你从模型创build一个对象时,你可以得到_id,我用它来创build另一个对象。 但是不可能插入一个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); } 

我find的解决scheme是创build我自己的唯一标识,而不是获取一个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); }