Mongoose:如何使用 ObjectId 链接模型?

詹姆斯凯勒

我正在使用 Express、Mongoose 和 Mongodb。我有两个模型,一个用于用户,另一个用于评论,如下所示:

var User = mongoose.Schema({
  firstName: String,
  lastName: String,
  email: String
});
mongoose.model("User", User);

var Review = mongoose.Schema({
  foodRating: Number,
  serviceRating: Number,
  locationRating: Number,
  wouldReturn: boolean
});
mongoose.model("Review", Review);

我想以评论属于用户的方式链接两个模型。

我读过 ObjectId,但不清楚如何实现它。我应该创建它,然后使用它,像这样:

const MyObjectId = mongoose.Types.ObjectId;

然后覆盖模型的 _id 我想用它链接到我的第一个模型?

var User = mongoose.Schema({
  firstName: String,
  lastName: String,
  email: String,
  review: [MyObjectId] // retrieves model below from its _id:MyObjectId
});
mongoose.model("User", User);

var Review = mongoose.Schema({
  _id: MyObjectId, // overriding _id with ObjectId
  foodRating: Number,
  serviceRating: Number,
  locationRating: Number,
  wouldReturn: boolean
});
mongoose.model("Review", Review);

这样对吗?或者我将如何做到这一点?

L.诺曼

从猫鼬文档中查看:http : //mongoosejs.com/docs/populate.html

基本上,你想要做的是:

const MyObjectId = mongoose.Types.ObjectId;

var User =  mongoose.Schema({

    firstName:String,
    lastName: String,
    email: String,
    review: [MyObjectId] // retrieves model below from its _id:MyObjectId
});

mongoose.model('User', User);

var Review =  mongoose.Schema({
    user: { type: MyObjectId, ref: 'User' } // overriding _id with ObjectId
    foodRating: Number,
    serviceRating: Number,
    locationRating: Number,
    wouldReturn: boolean,

});
mongoose.model('Review', Review);

完成后,来自 User 文档的 _id 将存储在 Review 文档的 user 字段中。然后你可以做这样的事情:

Review.
    findOne({ foodRating: 4 }).
    populate('user').
    exec((err, review) => {
      if (err) return handleError(err);
      console.log('The user is %s %s', review.user.firstName, review.userLastName);
      // prints "The user is So-and-so"
    }); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用addToSet和Mongoose添加多个ObjectId?

来自分类Dev

如何使用MongoDB(Mongoose)在集合中添加/更新ObjectId数组?

来自分类Dev

如何解析一个pydantic模型中的ObjectId?

来自分类Dev

在Mongoose中提交一个模型,该模型包含具有ObjectID的数组

来自分类Dev

Using ObjectId with Mongoose in MongoDB

来自分类Dev

Mongoose uuid 插入的 ObjectId

来自分类Dev

objectId 在 mongoose 中被改变

来自分类Dev

Mongoose 查询比较 ObjectId

来自分类Dev

在MongoDB中将ObjectId与Mongoose结合使用

来自分类Dev

在MongoDB中将ObjectId与Mongoose结合使用

来自分类Dev

如何显示链接模型的项目

来自分类Dev

ObjectId 的 NodeJS/Mongoose 模式数组

来自分类Dev

如何使用Mongoose将文档插入只有一个ObjectID的集合中?

来自分类Dev

猫鼬:使用“ 1”作为Schema.Types.ObjectId的值创建模型

来自分类Dev

如何从指令链接功能更新AngularJS模型?

来自分类Dev

如何触发模型以更新链接到的列表

来自分类Dev

如何将MVC模型数据与Angular JS模型链接

来自分类Dev

如何按顺序链接ML模型/管道模型?

来自分类Dev

如何将MVC模型数据与Angular JS模型链接

来自分类Dev

在th:href链接中使用模型属性

来自分类Dev

Django,使用ForeignKey将模型字段与管理模型字段链接

来自分类Dev

如何使用mongoengine在EmbeddedDocument中定义objectid?

来自分类Dev

如何使用变量创建新的Mongo ObjectId?

来自分类Dev

如何使用rmongodb通过ObjectId查询文档

来自分类Dev

如何在nodejs中使用objectId

来自分类Dev

如何通过URL传递objectId?

来自分类Dev

如何检查包含ObjectId的数组?

来自分类Dev

Mongoid如何生成BSON ObjectId

来自分类Dev

如何通过ObjectId查找文档?

Related 相关文章

热门标签

归档