如何将用户集合属性设置为流星中的对象数组?

时间:2015-08-04 19:38:54

标签: mongodb meteor

我们正在使用collection2(显然使用简单模式)并尝试将对象数组保存到Meteor.users集合上的单个属性中。例如,我们的数据可能是:

[
    {name: "paul"},
    {name: "darryn"},
    {name: "tom"}
]

实际上我们的对象更复杂

尝试在用户集合的更新中使用$set执行此操作时,我们已经获得500或者在关闭验证时设法完全删除用户对象。

我们也多次遇到以下错误:

Validation object must have at least one operator / meteor mongo

This StackOverflow Question提到它,但没有提供在我们的背景下有意义的解决方案。

我的问题有两个问题。如何为此定义架构,因为我们一直在尝试type: [Object]我不确定是对的,其次应该如何在方法中创建更新语句。

任何想法或帮助都会令人惊叹。

1 个答案:

答案 0 :(得分:0)

首先定义复杂对象的架构。在这里,我刚刚将 age 添加为关键字:

Schema.Foo = new SimpleSchema({
  name: { type: String },
  age: { type: Number, min: 0 }
});

然后使用类型您刚刚定义的类型的数组的键来扩充用户架构

Schema.User = new SimpleSchema({
  foo: { type: [Schema.foo] },
  etc...
});