- 文档描述有误导性, $[] 没有实现 mongodb 对应 的 $[idenfier] 的功能。
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/query-array-object.htmlhttps://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/query-array-object.html $[] 实现的功能就是数组中的所有元素, 与Mongodb的 $[] 一致。 但文档描述且说是能更新匹配的所有数组元素。 可以误解为$[] 实现了 与Mongodb 中 $[idenfier]的功能。 [图片] 文档描述 $[] 是更新数组中所有匹配的元素, 而实际运行的结果是, 数组的所有元素。 测试数据 {"_id":"8f75309d62972ff30684c7797085aac7","arr":[10,11,10]} 执行下面的更新 db.collection('xxx').where({ _id:"8f75309d62972ff30684c7797085aac7", scores: 10 }).update({ data: { "scores.$[]": 12 } }) 更新后的文档 arr:[12,12,12], 所有数组元素都修改了, 而不是只有值为(匹配)10的数组元素被修改。 https://www.mongodb.com/docs/v4.4/reference/operator/update/positional-filtered/#mongodb-update-up.---identifier-- (真心累, 搞个阉割版本给开发者用,直接花钱买mongodb版权吧, 要不就给云数据库团队加大投资力度, 做mongodb的超集)
2022-06-01 - 对象数组 使用 elemMatch + _.and 查询结果为空(不正确)
1 测试数据 及 查询代码 {"_id":"5b049cc8622b232d102331c1093008a3","array":[100.0,200.0],"a2":[{"price":10.0}]} {"_id":"bf4a0bf2622b237613f4e3a416172934","array":[60.0,80.0],"a2":[{"price":100.0}]} db.collection("test") // 返回 a2数组中 匹配 price 大于等于10且小于等于100 的记录 .where({ a2: _.elemMatch({price:_.and(_.gte(10), _.lte(100))}) }) .get() 2 微信开发者工具上查询能返回正确结果 [图片] 3 腾讯云-云开发 控制台 及 云函数上相同的代码 返回为空 [图片] wx-server-sdk : 2.6.0 云函数版本node12
2022-03-11 - Node12版本云函数使用serverless-mysql 日志报错 (函数调用本身有成功返回值)
云函数代码(Node12+): const mysql = require('serverless-mysql')({ config: { host: process.env.HOST, port: process.env.PORT, database: process.env.DATABASE, // 需要填写真实的用户名与密码 user: 'xxx', password: 'xxx' } }) exports.main = async (event, context, callback) => { let res try { res = await mysql.query('SELECT 1') } catch (e) { console.error(e) } return { res, // 客户端能正确收到这个结果,但是后台日志有报错 code: 200 } } 云函数调用日志输出: {"errorCode":-1,"errorMessage":"Async invoking task timed out after 5 seconds","statusCode":433} 日志: START RequestId:7198ee9c-610f-4f70-9773-64aaaaf4326c REPORT RequestId:7198ee9c-610f-4f70-9773-64aaaaf4326c Duration:5000ms Memory:256MB MemUsage:11.003906MB END RequestId:7198ee9c-610f-4f70-9773-64aaaaf4326c } 使用Node8.9版本云函数是正常的,日志显示调用成功 这是node版本的bug吗, 如何解决
2022-02-14