老师,关于update,set的问题

来源:1-1 课程导学

慕斯1389853

2020-10-19

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

写回答

1回答

谢成

2020-10-21

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
1
慕斯1389853
老师,我上面用文字描述可能有点苍白无力,这次用代码给你描述详细些: 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
共1条回复

微信小程序云开发-从0打造云音乐全栈小程序

横跨小程序端、云后端、CMS一站式云开发的小程序全栈课程

1938 学习 · 2768 问题

查看课程