mongodb - 不带阵列的嵌入式文档?

  显示原文与译文双语对照的内容
0 0

我知道如何中嵌入文档 Mongoose,他们似乎比较简单如果存储为数组,为其用例相当明显:

var CommentSchema = new Mongoose.Schema({...});
var BlogPostSchema = new Mongoose.Schema({
    comments : [CommentSchema],
});

但是,纵观前后的文档我没有看到如何做之后,是如何存储的单个子文档中不需要或希望是Array 。

var UserSchema = new Mongoose.Schema({...});
var BlogPostSchema = new Mongoose.Schema({
    author: ??? // 'UserSchema' and UserSchema do not work here. 
});

是否有方法可以达到这种效果呢? 我不想只是存储ObjectId之上,而是存储的完整副本,但不需要或希望User记录数组。

时间:原作者:2个回答

0 0

这样,不能嵌入架构与推理,那些子文档会觉得跟完整文档,请参见这个bug线程,电视机也表示,

我们还没有添加这种支持过去之所以b/c这个真让我们想知道所有将执行pre挂钩中采用相同的伪子文档以及它意味着我们能够调用save( ) 这个子。

这个答案是共享而不是架构,只是定义。

var userdef = { name: String };
var UserSchema = new Schema(userdef);
var BlogPostSchema = new Schema({author: userdef});

这将生成这样一个嵌套用户对象,实际上并没有嵌套Schema 。

原作者:
0 0

只是共享信息不支持验证冒泡。 ,可能还需要验证UserSchema也。

而我建议数组长度验证

author: {type:[UserSchema], validate: function (arr) { return arr.length == 1 }},
原作者:
...