Mongoose Node Js加入两个集合

时间:2016-06-18 10:14:17

标签: javascript node.js mongodb

我是MEAN Stack的新手,我正在使用Node Js开发应用程序。

我有两个收藏说,



case (x: Int, y: Int) :: (xs1: List[Int], ys1: List[Int]) 




var personSchema = Schema({ _id: Number, name: String, age: Number, stories: { type: Array, ref: 'Story' } }); var storySchema = Schema({ _creator: { type: Number }, story_id: String, fans: [{ type: Number }] }); var Story = mongoose.model('Story', storySchema); var Person = mongoose.model('Person', personSchema);架构中,Personstories的列表,它是一个值数组。我还需要列出所有人员数据及其故事细节。

我用过, story_id
但它会引发错误,

Person.find().populate("stories");

请帮忙。

1 个答案:

答案 0 :(得分:1)

您获得CastError的原因是您没有像在Person模式中那样存储故事ID列表:

 var personSchema = Schema({
   ...
   stories : { type: Array, ref: 'Story' }
 });

相反,您应该将其更改为:

 var personSchema = Schema({
   ...
   stories : [{ type: Schema.Types.ObjectId, ref: 'Story' }]
 });

还要注意以下内容(来自Mongoose的documentation人口)

  

ObjectId,Number,String和Buffer可用作refs。