收藏
回答

云开如何删除数组某一项?做了几天了

数据长这样——
_id:"123213213"
list:[
{id:"1",flag:false,sublist:["as3d","rew7","t3re","fdd6sf"]},
{id:"2",flag:false,sublist:["as5d","re6w","tr6e","fdd5sf"]},
{id:"3",flag:true,sublist:["as765d","r5ew","tr7e","f3ddsf"]},
{id:"4",flag:true,sublist:["as9d","re2w","tr8e","fd5dsf"]},
{id:"5",flag:true,sublist:["asd","rew","tr9e","f5ddsf"]},
{id:"6",flag:true,sublist:["asd","rew","tr9e","f5ddsf"]},
{id:"7"}
]

我想删除list下id为2的那个对象,只删除这一项。

我本来想的是这个语法

db.collection('xxxx').doc(event._id).update({
    data:{
      list: _.pull(_.in([{id:"2"}]))
    }
  })

但这个语句无效,后经查阅,这个语法的意思是,{id:"2"}必须全匹配,意思是如果把{id:"2"}换成{id:"7"}就可以正常删除最后一项。

然后,那个sublist,很长……无法完全匹配。

那么我怎么删除,list下,id为2的这一行呢?
回答关注问题邀请回答
收藏

1 个回答

  • 跨商通
    跨商通
    2022-08-17

    1、没仔细看文档。

    https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/command/Command.pull.html

    文档的最后两个例子。

    2022-08-17
    有用
    回复 4
    • 渐层
      渐层
      发表于移动端
      2022-08-17
      仔细看一下我的需求呢,我有写过有个“完全匹配的问题”
      2022-08-17
      回复
    • 渐层
      渐层
      发表于移动端
      2022-08-17
      我要根据数组里对象的id,删除数组里的某一个对象(不是只删id,也不是删整个数组),这样形容的。
      2022-08-17
      回复
    • 跨商通
      跨商通
      2022-08-17回复渐层
      再看了一遍。保持原回答。pull的作用只能也只有从数组中删除“数组元素”。
      2022-08-17
      回复
    • 渐层
      渐层
      发表于移动端
      2022-08-17回复跨商通
      你自己动手试一下就知道了,可以删,会出现一个null。不然就是无法完全匹配。
      2022-08-17
      回复
登录 后发表内容