【问题标题】:SimpleSchema update errorSimpleSchema 更新错误
【发布时间】:2016-06-20 21:15:07
【问题描述】:

我正在尝试通过将 usersId 保存到已登录的用户帐户来创建收藏按钮。这个概念是,如果有一个 userId(用户是最喜欢的),否则用户不是最喜欢的。问题是我收到一个错误update failed: Error: Favorites must be an array,我不确定这意味着什么。

路径:schema.js

Schema.UserProfile = new SimpleSchema({
    "favorites.$.favorite": {
        type: Object
    }
});

路径:studentlist.js

Template.student.events({
'click .favourite':function(event,template) {
      console.log('click');
        var candidateId = this._id;

        Meteor.users.update({_id: Meteor.userId() }, { $set: { "profile.favorites": candidateId }});
    }
});

【问题讨论】:

  • 请参阅"Should questions include “tags” in their titles?",其中的共识是“不,他们不应该”!
  • 没问题,安德烈亚斯,我会接受的。仍在学习正确的做事方式。
  • 您是否使用aldeed:collection2 将架构附加到集合中?当您指定它应该是一个带有favorites.$ 的数组时,为什么要尝试将favorites 设置为一个ID,它通常是一个字符串?请edit您的问题提供minimal reproducible example

标签: meteor simple-schema


【解决方案1】:

你基本上有两个错误。

出现错误时,您必须已将 Favorites 属性定义为数组。并在您尝试使用$set 命令更新的代码中。

当您在 MongoDB 中向数组中插入项目时,您必须使用 $push 运算符。

修复此问题后您将面临的第二个问题是不正确的数据类型插入。因为您已将 favorite 定义为一个对象,但试图仅插入一个 id。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-28
    • 2014-10-09
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 2020-09-26
    相关资源
    最近更新 更多