数组中的SimpleSchema和MongoDB嵌套数组

时间:2015-10-15 14:47:30

标签: mongodb meteor simple-schema

我正在使用SimpleSchema和Meteor来构建数据库条目。

问题是,我有一组对象数组(这些数据显示在HTML表格中),需要更新单个单元格。

我的架构看起来像:(Coffeescript)

drags:
    type: [[Object]]
    label: "The correct assignment of drop values"
    optional: true
    blackbox: true
"drags.$":
    type: [Object]
    label: "Row of the Table"
    blackbox: true
"drags.$.$":
    type: Object
    label: "Cell of the Table"
"drags.$.$._id":
    type: String
    label: "Unique Id of Draggable"
    optional: true
"drags.$.$.text":
    type: String
    label: "Text of Draggable"
    optional: true
"drags.$.$.fixed":
    type: Boolean
    label: "Is this Draggable Fixed to the correct spot"
    optional: true
"drags.$.$.color":
    type: String
    label: "Color of Draggable"
    optional: true

我的数据库调用更新特定单元格是:

db.update({_id:"some-id"},{$set: {"drags.1.2.fixed":true}})

此调用会抛出此错误:

Error: When the modifier option is true, validation object must have at least one operator

1 个答案:

答案 0 :(得分:3)

使用简单模式来分别为每个层定义模式并将它们嵌套它们几乎总是更容易。在你的情况下:

drags: 
  type: [row]
  label: "The correct assignment of drop values"
  optional: true
  blackbox: true

row:
  type: [cell]

然后定义您的单元格属性。通常,如果将对象定义为blackbox,那么定义其各自的属性就没有意义。你在单元级别有一个必填字段但超过你说它的黑盒子。