当前位置: 首页 > 面试题库 >

在Mongoose中引用另一个模式

越学博
2023-03-14
问题内容

如果我有两个模式,如:

var userSchema = new Schema({
    twittername: String,
    twitterID: Number,
    displayName: String,
    profilePic: String,
});

var  User = mongoose.model('User')

var postSchema = new Schema({
    name: String,
    postedBy: User,  //User Model Type
    dateCreated: Date,
    comments: [{body:"string", by: mongoose.Schema.Types.ObjectId}],
});

我试图像上面的示例一样将它们连接在一起,但是我不知道该怎么做。最终,如果我可以做这样的事情,那将使我的生活变得很轻松

var profilePic = Post.postedBy.profilePic

问题答案:

听起来好像populate方法是您想要的。首先,对您的发布架构进行少量更改:

var postSchema = new Schema({
    name: String,
    postedBy: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
    dateCreated: Date,
    comments: [{body:"string", by: mongoose.Schema.Types.ObjectId}],
});

然后建立您的模型:

var Post = mongoose.model('Post', postSchema);

然后,当您进行查询时,可以像这样填充引用:

Post.findOne({_id: 123})
.populate('postedBy')
.exec(function(err, post) {
    // do stuff with post
});


 类似资料:
  • 问题内容: 我正在为约会应用程序构建Mongoose模式。 我希望每个文档都包含对它们所经历过的所有事件的引用,其中另一个是系统中具有自己模型的架构。如何在架构中对此进行描述? 问题答案: 您可以使用 人口 来描述它 填充是用其他集合中的文档自动替换文档中指定路径的过程。我们可以填充单个文档,多个文档,普通对象,多个普通对象或查询返回的所有对象。 假设您的事件模式定义如下: 为了显示如何使用填充,

  • 问题内容: 我试图在其中一个表上创建外键,并在其他模式中引用表的列。 像这样的东西: 由于我获得了必要的赠款,因此效果很好。 现在,我想知道是否有原因不引用其他模式中的表,或者有什么需要注意的地方? 问题答案: 没问题。在表之间建立外键关系时,架构实际上没有任何影响。只要确保适当的人员具有您打算使用的架构所必需的权限即可。

  • 问题内容: 我有一个特殊情况,我们的收藏需要根据电子邮件地址和swepstakes_id的组合来确保每个文档都是唯一的。我已经看了很多遍,但是我找不到如何完成这种验证的方法。 模式定义: 问题答案: 您可以使用包含两个字段的唯一索引来强制执行该操作:

  • 有没有办法用JSON schema表达对同一个JSON文档中另一个元素的引用?标题可能有点混乱,但我不是在寻找< code>"$ref"属性,它引用了另一个类型,但我很好奇,是否有一种方法可以使用指定的字段引用文档中的另一个元素。我知道对xml文档强制使用xsd是可能的,但不确定JSON。 我想做这样的事情: 我一直在研究v4的模式定义:http://json-schema.org/draft-0

  • 问题内容: Java属性文件可以引用其他属性文件吗? 这可能吗? 问题答案: Chris Mair的XProperties类可能是一个不错的起点。 你可以在属性值的任何位置替换一个常量,甚至可以在一个值中包含多个常量,如以下示例所示: 在此示例中,“ SomeValue”属性的计算结果为”shoes and ships and sealing wax.”。

  • 我对python还很陌生,所以如果这是非常简单或非常错误的思考方式,请原谅我。 我安装了python 2.7。根据我在运行以下代码时的理解,它列出了查找模块的目录。 我有另一个目录,似乎有一堆我安装的 python 模块。“/Library/Python/2.7/site-packages” 我想我需要做两件事之一: (1) 指示python在这个附加文件夹中查找模块。我该怎么做? (2)将模块安