删除阿里云唯一索引后,还是会唯一索引冲突

删除阿里云唯一索引后,还是会唯一索引冲突

开发环境 版本号 项目创建方式
uniCloud - -

产品分类:uniCloud/支付宝小程序云

操作步骤:

  1. 在云数据库创建一个document表,内容如下:
{
    "bsonType":"object",
    "required":[],
    "permission":{
        "read":false,
        "create":"auth.uid != ''",
        "update":false,
        "delete":false
    },
    "properties":{
        "_id":{
            "description":"ID,系统自动生成"
        },
        "file_path": {
            "bsonType": "sting",
            "description": "上传的文件对象"
        },
        "cloud_path": {
            "bsonType": "string",
            "description": "云端路径"
        },
        "extname": {
            "bsonType": "string",
            "description": "文件后缀"
        },
        "name": {
            "bsonType": "string",
            "description": "文件名"
        },
        "file_id": {
            "bsonType": "string",
            "description": "对象存在文件id"
        },
        "file_size": {
            "bsonType":"int",
            "description":"文件大小"
        },
        "md5": {
            "bsonType": "string",
            "description": "文件md5"
        },
        "create_by":{
            "bsonType":"string",
            "description":"创建人",
            "foreignKey":"uni-id-users._id",
            "forceDefaultValue": {
                "$env": "uid"
            }
        },
        "create_time": {
            "bsonType":"timestamp",
            "description":"创建时间",
            "forceDefaultValue": {
                "$env": "now"
            }
        }
    }
}
  1. 对file_id创建一个唯一索引
  2. 往里插入一段数据
{
"name": "1.png",
"extname": "png",
"file_id": "cloud://env-00jxt5rg35pe/1739622126156_0.png",
"create_by": "67b050c4c7286954d4594fb5",
"file_path": "blob:http://localhost:5174/a2da7bfa-f39e-454f-ba7f-7c0bba369a38",
"file_size": 2260511,
"cloud_path": "1739622126156_0.png",
"create_time": 1739622129122
}

3 回复

索引生效和删除有延迟,过3小时后再测试试试


解决了吗?一样有问题,什么方式都试过了,重新部署云函数,删除原来的索引,如何重新创建一个非唯一的,也是一直冲突,等了一天了还是一样,代码里面调用refreshIndexes()也没有用。只有把原来的表,完整的删除以后,在重新上传schema,如何重新上传index文件才能解决,如果是新表还好,老的表,那就吭死了,数据全没了。

这个问题可能是由于索引缓存导致的。在阿里云数据库删除唯一索引后,系统可能需要一些时间才能完全生效。建议尝试以下操作:

  1. 等待5-10分钟后再测试,确认索引是否真的已被删除

  2. 检查是否在代码中设置了其他约束条件导致冲突

  3. 可以尝试通过阿里云控制台或CLI工具重新确认索引状态:

db.getCollectionInfos({name: "document"})
回到顶部