当前位置:  开发笔记 > 编程语言 > 正文

Collection.upsert()vs Collection.update()with"upsert:true"

如何解决《Collection.upsert()vsCollection.update()with"upsert:true"》经验,为你挑选了1个好方法。

我在Meteor中使用MongoDB.我发现要更新(如果已经存在)数据或插入集合update()可以使用upsert: true.还有一种方法upsert(),也可用于更新/插入记录.

代码:( 来自流星)

使用update:

Collection.update({
    _id: id
}, {
    $set: {
        content: 'SomeText'
    }
}, {
    upsert: true
});

使用upsert:

Collection.upsert({
    _id: id
}, {
    $set: {
        content: 'SomeText'
    }
});

题:

    差异:标志设置为和之间update()有什么区别upserttrueupsert()

    使用案例:何时应使用update()upsert()

somallg.. 7

这是来自meteor源的mongo代码(https://github.com/meteor/meteor/blob/devel/packages/mongo/collection.js#L640)

Mongo.Collection.prototype.upsert = function upsert(
    selector, modifier, options, callback) {
  if (! callback && typeof options === "function") {
    callback = options;
    options = {};
  }

  const updateOptions = _.extend({}, options, {
    _returnObject: true,
    upsert: true
  });

  return this.update(selector, modifier, updateOptions, callback);
};

所以upsert只需设置update选项upsert即可true.没有什么不同,你可以使用你喜欢的任何功能



1> somallg..:

这是来自meteor源的mongo代码(https://github.com/meteor/meteor/blob/devel/packages/mongo/collection.js#L640)

Mongo.Collection.prototype.upsert = function upsert(
    selector, modifier, options, callback) {
  if (! callback && typeof options === "function") {
    callback = options;
    options = {};
  }

  const updateOptions = _.extend({}, options, {
    _returnObject: true,
    upsert: true
  });

  return this.update(selector, modifier, updateOptions, callback);
};

所以upsert只需设置update选项upsert即可true.没有什么不同,你可以使用你喜欢的任何功能

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有