使用MongoDB更新文档,增加字段并将其设置为0(如果不存在)

janesconference

我在node.js中使用MongoDB

我想要的是将文档添加到集合中。该文档具有唯一的ID,一个lastAccess字段(用于存储上次访问的日期)和一个timesAccessed字段,在创建文档时应将其设置为0,如果更新则应增加1。

我试过了:

// coll is a valid collection
coll.update(
    {user: accountInfo.uid},
    {user: accountInfo.uid,
     lastAccess: new Date(),
     $inc: {timesAccessed: 1},
     $setOnInsert: {timesAccessed: 0}
    },
    {upsert: true, w: 1},
    function(err, result) {
        if (err) throw err;
        console.log("Record upserted as " + result);
    });

但是节点说:

MongoError: Modifiers and non-modifiers cannot be mixed

什么是巧而又安全的方法?

他吞下

您应该$ set值或更新/替换整个对象。因此,无论update(find_query, completely_new_object_without_modifiers, ...)update(find_query, object_with_modifiers, ...)

另外,您不能使用相同的字段名来$ set和$ setOnInsert,因此您将从1开始计数:)哦,您不需要将find_query项目添加到update_query,它们将被自动添加。

尝试:

col1.update( {
  user: accountInfo.uid
}, {
  $set: {
    lastAccess: new Date()
  }
  $inc: {
    timesAccessed: 1
  }
}, {
  upsert: true,
  w: 1
}, function(err, result) {
  if(err) {
    throw err;
  }
  console.log("Record upsert as", result);
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果不存在字段,则更新MongoDB文档

来自分类Dev

完全更新文档而不创建(如果不存在)

来自分类Dev

使用新对象中的值更新原始对象中的值,如果不存在则将值设置为 0

来自分类Dev

如果设置为 0 的列中不存在值

来自分类Dev

如果 MongoDB 中不存在用户名或电子邮件,则创建新文档

来自分类Dev

mongodb mongoose-如果字段不存在,如何将文档添加到数组

来自分类Dev

如果 MongoDB 中不存在则创建文档并以原子方式向其添加字段

来自分类Dev

如果我的TempData [不存在,如何将其设置为特定值

来自分类Dev

在Javascript中,如果属性不存在,如何自动将其设置为null?

来自分类Dev

如果某些单词不存在,则将其分配为0

来自分类Dev

选择MongoDB文档,其中字段不存在,为null或为false?

来自分类Dev

仅当不存在MongoDB文档字段时,才如何更新它们?

来自分类Dev

获取文档ID(如果存在)或将其插入,并返回插入的文档ID(如果不存在)

来自分类Dev

如果MongoDB Javascript不存在,如何创建文档?

来自分类Dev

JSON字段设置为null vs字段不存在

来自分类Dev

如果文档不存在,如何在使用 pyspark 批量更新时忽略异常

来自分类Dev

如果节点不存在,则XSLT将默认值设置为“ 0”

来自分类Dev

MongoDB-更新多个文档解决方案-更新文档计数器或在不存在的情况下插入

来自分类Dev

如果不存在“ IN”字段,我希望“ WHERE IN”返回0

来自分类Dev

Redis获取密钥或设置为默认(如果不存在)

来自分类Dev

如果文档不存在,请使用Flutter Firebase

来自分类Dev

仅当MongoDB中不存在新文档时如何插入

来自分类Dev

是否可以检查Redis设置密钥是否存在,如果不存在,则将其设置为存在,然后退出,全部作为事务处理

来自分类Dev

Elasticsearch-使用脚本创建字段(如果不存在)

来自分类Dev

MongoDB在不存在字段的情况下查找所有文档,如果存在则应用字段运算符($ max)条件

来自分类Dev

Phonegap Android创建文件(如果不存在)并将其写入

来自分类Dev

如果字段不存在,如何在所有文档中插入字段

来自分类Dev

如果虚拟文档根目录不存在,如何设置默认文档根目录?

来自分类Dev

如果字段存在必须为true,但如果不存在则必须通过true

Related 相关文章

  1. 1

    如果不存在字段,则更新MongoDB文档

  2. 2

    完全更新文档而不创建(如果不存在)

  3. 3

    使用新对象中的值更新原始对象中的值,如果不存在则将值设置为 0

  4. 4

    如果设置为 0 的列中不存在值

  5. 5

    如果 MongoDB 中不存在用户名或电子邮件,则创建新文档

  6. 6

    mongodb mongoose-如果字段不存在,如何将文档添加到数组

  7. 7

    如果 MongoDB 中不存在则创建文档并以原子方式向其添加字段

  8. 8

    如果我的TempData [不存在,如何将其设置为特定值

  9. 9

    在Javascript中,如果属性不存在,如何自动将其设置为null?

  10. 10

    如果某些单词不存在,则将其分配为0

  11. 11

    选择MongoDB文档,其中字段不存在,为null或为false?

  12. 12

    仅当不存在MongoDB文档字段时,才如何更新它们?

  13. 13

    获取文档ID(如果存在)或将其插入,并返回插入的文档ID(如果不存在)

  14. 14

    如果MongoDB Javascript不存在,如何创建文档?

  15. 15

    JSON字段设置为null vs字段不存在

  16. 16

    如果文档不存在,如何在使用 pyspark 批量更新时忽略异常

  17. 17

    如果节点不存在,则XSLT将默认值设置为“ 0”

  18. 18

    MongoDB-更新多个文档解决方案-更新文档计数器或在不存在的情况下插入

  19. 19

    如果不存在“ IN”字段,我希望“ WHERE IN”返回0

  20. 20

    Redis获取密钥或设置为默认(如果不存在)

  21. 21

    如果文档不存在,请使用Flutter Firebase

  22. 22

    仅当MongoDB中不存在新文档时如何插入

  23. 23

    是否可以检查Redis设置密钥是否存在,如果不存在,则将其设置为存在,然后退出,全部作为事务处理

  24. 24

    Elasticsearch-使用脚本创建字段(如果不存在)

  25. 25

    MongoDB在不存在字段的情况下查找所有文档,如果存在则应用字段运算符($ max)条件

  26. 26

    Phonegap Android创建文件(如果不存在)并将其写入

  27. 27

    如果字段不存在,如何在所有文档中插入字段

  28. 28

    如果虚拟文档根目录不存在,如何设置默认文档根目录?

  29. 29

    如果字段存在必须为true,但如果不存在则必须通过true

热门标签

归档