使用 mongoose 在 mongodb 中加入集合

Posted

技术标签:

【中文标题】使用 mongoose 在 mongodb 中加入集合【英文标题】:Join on collection in mongoodb using mongoose 【发布时间】:2018-08-21 15:03:42 【问题描述】:

收藏是主收藏

var FeedsSchema = new mongoose.Schema(
  categoryName: 
    type: String,
    unique: true,
    required: true,
    ref: 'feeds',
    trim: true
  ,
  categoryLogo: 
    type: String,
    unique: false,
    required: true,
    trim: true
  ,
  status:
      type: String,
      required: true,
  ,
  date:
      type: String,
      required:true
  
);
var categories = mongoose.model('categories', FeedsSchema);
module.exports = categories;

集合是子集合

var UserSchema = new mongoose.Schema(
  user_id: 
    type: String,
    ref: 'user',
    required: true,
    trim: true
  ,
  preferences :
    type: String,
    required: true,
    ref: 'categories',
    trim: true
  ,
  status :
    type: String,
    required: true,
    trim: true
  
);
var Preferences = mongoose.model('preferences', UserSchema);
module.exports = Preferences;

需要显示主集合中的所有值,并且需要在主集合中推送相关字段以显示它在第二个集合中 请提出相关的实现方法

【问题讨论】:

【参考方案1】:

声明

Schema = mongoose.Schema;

将首选项的类型设置为 Schema.ObjectId 而不是 String。 现在,当您选择用户列表或用户 byId 或 .. 填充首选项属性 示例:User.find().populate('preferences') ..... 你可以找到mongoose populate的例子

【讨论】:

以上是关于使用 mongoose 在 mongodb 中加入集合的主要内容,如果未能解决你的问题,请参考以下文章

如何在mongodb中加入查询?

在 mongodb 中加入类似查询

在烧瓶 mongoDB 中加入集合的 groupby 查询

在查询输出中加入字符串

除了 $lookup 运算符之外,MongoDB 4.0 中加入的替代方法是啥,因为它不适用于分片集合

关于NodeJs为啥要用mongoose操作mongodb