收藏
回答

云开发 event.xx 的参数为什么不能插到库里头?

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小程序 Bug 客户端 wx4555829d9f15671d 2.2.5

const post_data = {

_id: event.id

}

console.log(post_data)

await db.collection('test').add({

    data: post_data

}).then(res => {

})


上面这段代码里面,console.log 是可以正常打印出东西的,但是 add 到库里头就是 _id:null。

而我把 event.id 用 event.userInfo.openId 就是可以正常添加到库里,这究竟是为什么,深拷贝也没法解决问题

最后一次编辑于  03-15  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 悟空
    悟空
    03-15

    _id的值只能数据库自动生成不能自行设置的,你得换个字段名

    03-15
    赞同
    回复 1
    • YLD
      YLD
      03-15

      可以设置的,我用 openid 是可以的设置的

      03-15
      回复
  • YLD
    YLD
    03-15

    我终于明白了,原来 _id 的值是要求全局唯一的,这个 event.id 我传的是另一张表里面的 _id 的,想要插入到这张表里头,然后就会一直替我把这个冲突的值变为 null。真是坑,害我弄了一晚上,还好我突然想起会不会是唯一键的问题,还果然是,唉~

    03-15
    赞同
    回复 1
    • YLD
      YLD
      03-15

      而且这个冲突的 _id 值得是系统自动生成的才行,系统自动生成的才会保证全局唯一,如果是自定义的 _id 值就不会。例如我在别的表里用 openid 作为 _id 值,然后在这张表里头插入 _id:openid 是可行的。

      03-15
      回复