如何使用Sails在Mongo中存储ObjectID数组?

时间:2015-08-24 13:51:53

标签: mongodb sails.js

在我的初步问题之后: Handling relationships in Mongo and Sails?

我设法使用这种方法,但我现在需要按照我最初的想法解决这个问题。例如,我有我的照片和类别模型&集合,但现在我的类别还包含地址和业务详细信息。

在我的照片模型中,我有以下内容:

attributes: {
    caption  : { type  : 'string' }, 
    fid      : { type  : 'string' },
    user     : { model : 'user' },
    categories : { model : 'category', type : 'array'}
  }

在我的分类模型中,我有以下内容:

  attributes: {
    photo       : { model: 'photo' },
    category    : { type: 'string'},
    address     : { type: 'string'},
    phone       : { type: 'integer'},

    //Foreign Keys
    categories   : { collection: 'photo', via: 'categories', type : 'integer'}
  }

现在我可以将Photo集合中的类别显示为ObjectID,如果我删除了类型数组并只发送了一个类别的ObjectID,但在我的情况下,照片可以有多个类别。

如果我尝试在查询中发送ObjectID数组,它们只是作为String数组显示在数据库中。无论如何,我将这些存储为ObjectID的数组吗?

1 个答案:

答案 0 :(得分:0)

基本上它是many to many关系。你可以像这样使用Waterline方案:

照片模型

attributes: {
  caption  : { type  : 'string' }, 
  fid      : { type  : 'string' },
  user     : { model : 'user' },
  categories : { collection : 'category', via : 'photos'}
}

类别模型

attributes: {
  photos      : { collection: 'photo', via: 'categories' },
  category    : { type: 'string'},
  address     : { type: 'string'},
  phone       : { type: 'integer'},
}