如何在我的 meteor upsert 语句中使用 null 或?


这可能是

一个简单的javascript问题。我终于让这个 meteor upsert 语句工作了,除非在匹配记录尚不存在的情况下。如果我用 '' 或 null 替换chan._id,它就可以工作,所以我想做的是在 chan 找不到现有记录的情况下简单地使用 null 代替chan._id。我只是不知道怎么写这样的东西。

//client
var chfield = t.find('#today-channel').value,
chan = Today.findOne({channel: chfield})
Meteor.call('todayUpsert', chan._id, {
    channel: chfield,
    admin: Meteor.userId(),
    date: new Date(),
});

//client and server
Meteor.methods({
  todayUpsert: function(id, doc){
     Today.upsert(id, doc);
  }
});

当您使用 upsert 时,除非该条目已经存在,否则您将不知道_id。在这种情况下,如果您使用文档而不是_id搜索数据库条目,您应该得到所需的内容。

//client
var chfield = t.find('#today-channel').value;

Meteor.call('todayUpsert', {
    channel: chfield,
    admin: Meteor.userId(),
    date: new Date(),
});

//client and server
Meteor.methods({
    todayUpsert: function(doc){
        // upsert the document -- selecting only on 'channel' and 'admin' fields.
        Today.upsert(_.omit(doc, 'date'), doc);
    }
});

我找到了我要找的东西。

var chfield = t.find('#today-channel').value,
Meteor.call('todayUpsert',
    Today.findOne({channel: chfield}, function(err, result){
        if (result) {
            return result._id;
        }
        if (!result) {
            return null;
        }
    }),
    {
        channel: chfield,
        admin: Meteor.userId(),
        date: new Date()
    }
);

相关内容

  • 没有找到相关文章

最新更新