为什么地图有效,但mongodb $的每个都没有

时间:2017-07-11 04:49:33

标签: meteor simple-schema meteor-collection2

有人可以解释为什么一种向我的数据库添加数组的方法有效,而另一种方法没有。真的失去了差异。我正在使用aldeed/node-simple-schemacollection2

示例:Schema

'topFiveSkills': { type: Array, optional: true },
'topFiveSkills.$': { type: String, optional: true }

示例:'工作示例'

topFiveSkills = ["One", "Two", "Three"]

this.state.topFiveSkills.map((skill) => {
  ProfileCandidate.update(this.state.profileCandidateCollectionId, {
    $push: { 'topFiveSkills': skill }
  });
})

示例:'不起作用'

topFiveSkills = ["One", "Two", "Three"]

ProfileCandidate.update(this.state.profileCandidateCollectionId, {
  $push: { 'topFiveSkills': { $each: [topFiveSkills] }}
});

1 个答案:

答案 0 :(得分:1)

从我所看到的是你在$ each示例中应用嵌套数组。请尝试以下:

topFiveSkills = ["One", "Two", "Three"]

ProfileCandidate.update(this.state.profileCandidateCollectionId, {
  $push: { 
   'topFiveSkills': { 
     $each: topFiveSkills 
   }
  }
});

请注意,我将对象键/值放在一个单独的行上。正是出于这个原因,但事实并非如此。