猫鼬使用动态地图与嵌套文档

时间:2019-11-24 16:59:56

标签: node.js mongodb mongoose

我正在用猫鼬建立这种模式,公司在公司中有一个名为“地址”的字段。

我可以这样处理此字段:

address: {
  type: Map,
},
field2: Number,

但是我想验证这张地图,所以我创建了一个验证器道具:

address: {
  type: Map,
  validate: {
    validator: (map) => {
      const title = map.get('city');
      const content = map.get('street');
      const likes = map.get('number');
      if (
        title && typeof city === 'string' &&
        content && typeof street === 'string' &&
        likes && typeof number === 'number'
      ) {
        return true;
      } else {
        return false;
      }
    },
    message: 'Address map does not contain necessary fields',
  },
},

这是在集合文档中处理此类对象的最佳方法吗?还是我应该使用另一个模式(最终会导致每个加法器成为具有自己的ID等的子文档)来建模地址对象?哪个是更好的性能明智的选择?哪种查询更好?

提前谢谢!

0 个答案:

没有答案