如何仅在Couchbase中获取父文档
任何人都可以帮我解决这个问题 如何使用couchbase N1ql查询获得父文档结果如何仅在Couchbase中获取父文档,couchbase,n1ql,Couchbase,N1ql,任何人都可以帮我解决这个问题 如何使用couchbase N1ql查询获得父文档结果 { "created_at": "2020-03-26T15:50:12.318Z", "created_by": 1, "deleted_at": "", "frm21_submit": null, "id": "6cb51519-7c6b-499d-8a8d-3c85658605fc", "machine_category_id": [
{
"created_at": "2020-03-26T15:50:12.318Z",
"created_by": 1,
"deleted_at": "",
"frm21_submit": null,
"id": "6cb51519-7c6b-499d-8a8d-3c85658605fc",
"machine_category_id": [
"7a2eb767-faca-4762-b65b-2db9e1992c82",
"259a4bcc-feb5-4d98-88c5-b331316e19be"
],
"main_parts": [
{
"data": {
"deleted_at": "777",
"frm21_submit": null,
"manufacturing_date": "03/31/2020",
"model": "234234234",
"photo": null,
"serial_number": "324324234",
"updated_at": "2020-03-31T14:11:48.909Z"
},
"id": "66354d7c-4769-4f3b-914e-bb841191e323"
}
]
}
我希望结果只有父文档只有字段都是动态的我不能选择字段
{
"created_at": "2020-03-26T15:50:12.318Z",
"created_by": 1,
"deleted_at": "",
"frm21_submit": null,
"id": "6cb51519-7c6b-499d-8a8d-3c85658605fc",
"machine_category_id": [
"7a2eb767-faca-4762-b65b-2db9e1992c82",
"259a4bcc-feb5-4d98-88c5-b331316e19be"
]
}
如果只想从原始文档中删除主要部分 选项1:选择所需的字段。你提到这是不可能的 选项2:选择文档中的所有字段 项目缺失为您不想要的字段
SELECT d.*, MISSING AS main_parts
FROM default AS d;
选项3:从对象的字段中删除,如果需要,使用对象函数进行级联
选项4:如果需要删除大量字段,请使用“重建对象”
SELECT OBJECT v.name:v.val FOR v IN OBJECT_PAIRS(d) WHEN v.name NOT IN ["main_parts"] END.*
FROM default AS d;
选项5:如果字段是对象,则需要删除
SELECT OBJECT v.name:v.val FOR v IN OBJECT_PAIRS(d) WHEN v.val IS NULL OR ISOBJECT(v.val) = false END.*
FROM default AS d;
选项6:基于值类型
SELECT OBJECT v.name:v.val
FOR v IN OBJECT_PAIRS(d)
WHEN type(v.val) IN ["null", "boolean", "number", "string", "array", "object"]
END.*
FROM default AS d;
非常感谢:)它工作得很好,实际上问题是字段和子文档没有固定。它可以被增加。我真的很感谢你的帮助。
SELECT OBJECT v.name:v.val
FOR v IN OBJECT_PAIRS(d)
WHEN type(v.val) IN ["null", "boolean", "number", "string", "array", "object"]
END.*
FROM default AS d;