You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Couchbase迁移插入报错:Cannot INSERT non-string key Missing field _k

错误原因分析

1. 字段大小写不匹配

N1QL对标识符(包括字段名)大小写敏感。你的INSERT语句中指定KEY _k,但SELECT子句里返回的是_K(大写K),数据库无法匹配到_k字段,因此触发"Missing field or index _k"的缺失值错误。

2. 缺少插入的文档内容

INSERT语句声明了VALUE _v,但SELECT部分仅返回了修改后的key和ttl,未包含原文档_v的数据,执行时会缺失VALUE部分的必要内容。

解决方法

修正后的完整查询语句如下:

INSERT INTO `bucket`
(KEY _k, VALUE _v, OPTIONS {"expiration": ttl})
SELECT 
    REPLACE(META(_v).id, "2_", "3_", 1) AS _k,
    _v,
    META(_v).expiration AS ttl
FROM `bucket` _v
WHERE _v._class="classname"
AND META(_v).id LIKE "2_%";

关键修正点:

  • 将SELECT中的_K改为_k,与INSERT中的KEY字段名保持大小写一致。
  • 在SELECT中添加_v,作为INSERT的VALUE来源,确保插入的文档内容完整。
  • 统一使用META(_v).id替代META().id,明确指定从_v别名的文档获取元数据,避免歧义。

内容的提问来源于stack exchange,提问作者SANN3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 17:30:57