node.js - NodeJs SDK 中的 Couchbase 子文档更新
问题描述
我想将电话号码对象添加到我的个人文档中,它将它们保存在一个数组中。到目前为止一切顺利,我将新的电话文档添加到数组中没有问题。如果我想通过 subdoc 更新数组中的文档,这有点棘手,我需要知道数组中的索引,这就是我的担忧。Couchbase 允许用户追加、预先结束到数组中。因此,即使这样,当我最初检索数组时,我也可以获得数组索引,但有人可能会将新元素推入数组中,这可能会改变索引。所以这需要在我更新或删除任何数组对象之前使用 CAS。那么有没有办法克服所有这些限制并且仍然避免多次往返。
这是我的文档的样子
{
"type": "Lead",
"person": [
{
"id": 1,
"first_name": "Tom",
"middle_name": "M",
"last_name": "Miller",
"title": "Dr.",
"suffix": "II",
"gender": "m",
"dob": "07/12/1978",
"email": [
{
"id": 1,
"email_address": "tom@email.com",
"default": "yes"
},
{
"id": 2,
"email_address": "tom@email.com"
}
],
"phone": [
{
"id": 1,
"country": "+1",
"phone_number": 2135551212,
"ext": "",
"type": "mobile",
"sms": "yes",
"default": "yes"
},
{
"id": 2,
"country": "+1",
"phone_number": 2135554444,
"ext": 455,
"type": "office",
"sms": "no"
}
]
}
],
"home_address": {
"street_address": "28812 Miller Ave",
"city": "Los Angeles",
"state": "CA",
"zip": 90017,
"country": "US"
},
"search_info": {
"min_beds": 3,
"min_bath": 2.5,
"min_garage": 2,
"garage_type": "any",
"pool": "yes",
"min_sqft": 2500,
"max_sqft": 3500,
"min_lot_size": 10000,
"max_lot_size": 15000,
"max_storey": 1,
"notes": "Wants a fixer upper"
}
}
解决方案
推荐阅读
- linux - 如何允许 AppArmor 路径但拒绝其余子路径
- reactjs - 手势处理程序已停产?RectButton 不工作(但它是正确的)
- pyspark - 胶水作业需要时间循环读取镶木地板文件并将其写入极光数据库
- docker - dockerdumb-init 在启动时崩溃
- python - 使用 pyinstaller 时未找到 TensorFlow 库和隐藏导入
- google-cloud-platform - 何时使用 Firestore 与 Pub/Sub
- windows - AWS EC2 Windows 计划作业在脱机时失败
- javascript - MODULE_NOT_FOUND
- php - Recaptcha v2 没有响应
- spring-boot - 从部署 JAR 中排除模块代码作为构建选项