如果不存在值,则将其添加或增加计数(如果它存在于一个数组中)并将字段添加到猫鼬同一文档的另一个数组中?

时间:2018-07-13 14:51:45

标签: mongodb mongoose mongodb-query aggregation-framework mongoose-schema

const InfoSchema = mongoose.Schema({
  books:[ {
     _id: false,
     bookId: { type: mongoose.Schema.Types.ObjectId,
       ref: 'UserinfoSchema' },
     name: { type: String },
     type: { type: String }  // e.g:- 'fantasy', 'thriller' etc..
  }],
  info:[ {
     _id: false,
     type: { type: String }, // e.g:- 'fantasy', 'thriller' etc..
     count: { type: Number }
  }]
})

以上是我的架构设计。我要选择上述设计的原因是,如果我有超过100,000本书,如果我根据书籍类型进行汇总,则可能会花费一些时间,并且我不想将书籍信息发送到服务器。我唯一需要的是书籍类型的数量和最终输出的类型。在客户根据图书类型提出要求之前,我不希望向其显示图书信息。

并在更少的时间内执行的单独查询中获得图书数量。

我的假设是错误的还是有更好的方法来实现这一目标?

我最关心的是通过简单的步骤获得性能并减少查询时间。

0 个答案:

没有答案