首页 > 解决方案 > 键为动态时的最佳猫鼬模式

问题描述

我试图在 Mongoose 中代表这样的库:

{
 'Book category 1': [ { title: 'Title 1', price: 33 }, ...],
 'Book category 2': [ { title: 'Title 2', price: 22 }, ...],
  ...
}

所以

{ String: [{ title: String, price: Number}], ... }

要求是我必须按键检索这些数组以进行排序(按键(类别)和嵌套对象中的排序/分组)

从我一直在阅读的内容来看,我可以使用 Mixed 类型(我不喜欢它,因为我在每个键的数组中都有明确定义的对象) - 或 Map。

像这样的事情是最好的方法吗?

library: {
    type: Map,
    of: [{
      title: String,
      price: Number,
    }]
  } 

(不确定这是否可行)

编辑:还应该补充一点,我需要数组中的每个对象都有一个 id,所以也许这样的东西更合适?

const Book = new Schema({
  title: String,
  price: Number,
});

const Library = new Schema({
  libraryMap: { type: Map, of: [Book] },
});

标签: node.jsmongoosemongoose-schema

解决方案


推荐阅读