请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,关于update,set的问题

1、我用where更新update一条记录,报错,但是用doc更新就没问题,原因是啥
2、多条记录update和单条记录的区别
3、set只能用于单条,不能用于多条记录是吗?
4、set更新记录时候(我这里默认单条记录),是把整条记录字段都替换对吗?

正在回答 回答被采纳积分+3

1回答

谢成 2020-10-21 10:21:20

1、请问报错信息是什么呢?doc的作用不是更新,是根据id来查找。可以看下文档: https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/collection/Collection.doc.html

2、update可以更新一条也可以更新多条,到底更新几条取决于update前面的查询条件,如果前面查询条件查询出多条就更新多条,查询出一条就更新一条

可以参考文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/collection/Collection.update.html

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/document/Document.update.html


3、set的作用不是更新,是替换,每次替换一条数据。可以参考文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/document/Document.set.html

4、还是建议参考上面的文档,set是替换,会把数据中的字段都替换掉。而update是更新。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕斯1389853 #1
    老师,我上面用文字描述可能有点苍白无力,这次用代码给你描述详细些:
    1、刚才又试了用where查询然后update更新又可以了,所以也不追究之前的问题了;这里问一下doc('_id')括号里是必须只能填id对吧?文档上参数也写得_id,而where()括号里是不限制查询字段的是吗?
    2、首先给一个json
    [{
      // 描述,String 类型
      "description": "learn mini-program cloud service",
      // 截止时间,Date 类型
      "due": Date("2018-09-01"),
      // 标签,Array 类型
      "tags": [
        "tech",
        "mini-program",
        "cloud"
      ],
      // 个性化样式,Object 类型
      "style": {
        "color": "red"
      },
      // 是否已完成,Boolean 类型
      "done": false
    }]
    (1)如果我要单独改done为true,用update,他只是把done的值改为true,他不会替换整个collection{}对吗?而且update也可以更新多个字段的值?
    (2)set的话,他就是替换整个collection{}(哪怕其中有些字段我不需要改变)对吗?而且set也可以更新多个字段的值?
    (3)什么时候用set,什么时候用update,这两者是可以互相转换的吧?
    回复 有任何疑惑可以回复我~ 2020-10-21 12:14:34
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信