クラウド開発ドキュメントに書かれている方法は、最初のものが更新された場合、フィールド名「array.0」を書くことです。のような:
しかし、配列 (オブジェクトに格納されている) の i 番目の要素のキー属性を更新したい、i はパラメーターであり、現在テンプレート文字列 `array.${i}.key` を使用し、文字列スプライシング 'array .'+i+'.key' では、これらの方法はどちらも機能しません。
このチュートリアルの最初の解決策を見た後、私は解決策を見つけました!
$ 位置プレースホルダーを使用します。
exports.main = async(event, context) => {
return db.collection('user').where({
'_id':event.docID,
'array.key': event.key
}).update({
data: {
'array.$.key': event.value,
arrNum: _.inc(1)
},
success: res => {
console.log(res)
}
})
}
どこでドキュメントを見つけるだけでなく、ドキュメント内の配列内の適格な要素の位置も見つけることができます!
次に、位置データを格納する $ 記号を使用して、配列内の i 番目の要素のプロパティを更新します。
私の最初の答え: クラウド関数は指定された配列要素をどのように更新しますか? - WeChat オープン コミュニティ https://developers.weixin.qq.com/community/develop/doc/0000e479ca4890c7be1941bbc5b800