N1ql 查询用于Array_Append控制退出 elelment



这是我第一次执行查询时更新的文档,结果是 Result1,再次执行查询结果是 Result2。

查询:

更新默认值为 d 设置e.contact = ARRAY_APPEND(e.contact,{ "email": "sri123@gmail.com", "phone": 9876655555 }( 对于 D 中的 E.详细信息,当 e.id = 1234 结束时 其中 META((.id = "k01";

结果1:

"k01":
{
"details": [
{
"id": 1234,
"city": "Medway",
"country": "United Kingdom",
"name": "Medway Youth Hostel",
"url": "http://www.yha.org.uk",
"contact": [
{
"email": "hari34@gmail.com",
"phone": 6789435634
}
]
}]
} 

结果 2:

"k01":
{
"details": [
{
"id": 1234,
"city": "Medway",
"country": "United Kingdom",
"name": "Medway Youth Hostel",
"url": "http://www.yha.org.uk",
"contact": [
{
"email": "hari34@gmail.com",
"phone": 6789435634
},
{
"email": "hari34@gmail.com",
"phone": 6789435634
}
]
}]
} 

当我使用相同的值第二次执行查询时,我如何控制重复值。每次字段都以相同的值插入,无论元素是否存在。 请建议我(查询(。这样就不会发生重复的追加

将默认值更新为 d SET e.contact = ARRAY_APPEND(e.contact,{ "email": "sri123@gmail.com", "phone": 9876655555 }( 对于 e 在 d.details 中,当 e.id = 1234 结束时,其中 META((.id = "k01" 和 d.details 中的任何 e 满足 e.id = 1234 和 { "电子邮件": "sri123@gmail.com", "电话": 9876655555 } 不在 e.contact 结束;

如果联系人存在没有更新,则最好这样做。

将默认值更新为 d SET e.contact = ARRAY_DISTINCT(ARRAY_APPEND(e.contact,{ "email": "sri123@gmail.com", "phone": 9876655555 }(( 对于 e 在 d.details 中,当 e.id = 1234 结束时,其中 META((.id = "k01";

将默认值更新为 d SET e.contact = ARRAY_APPEND(e.contact,{ "email": "sri123@gmail.com", "phone": 9876655555 }(for e IN d.details 当 e.id = 1234 和 { "email": "sri123@gmail.com", "phone": 9876655555 } 不在 e.contact END 中,其中 META((.id = "k01";

这会导致更新甚至联系人存在。

最新更新