在 couchbase 中过滤数组字段
Filter array field in couchbase
我正在研究 couchbase lite android。
我有一系列文档,每个文档都包含一个字段,它的值是字符串数组。
现在我想过滤这个字段的值。
{
type : "customer",
name: "customerX",
states: [ "IL" , "IO" , "NY" , "CA" ]
},
{
type : "customer",
name: "customerY",
states: [ "WY" , "CA", "WA" ]
},
{
type : "customer",
name: "customerZ",
states: [ "NY" ]
}
我想获取状态字段中有 "CA" 的客户文件。
我正在使用 CBL Android.
emit(states , null);
那我怎样才能让我的开始和结束键选项。
startkey("CA")
Or
startKey(["CA"])
customerX customerY
如何在他们的状态字段中通过 "CA" 仅获得 customerX 和 customerY?!
如果您只想过滤一个状态,那么最好的解决方案是制作这样的视图:
function (doc, meta) {
if(doc.type && doc.type == "customer") {
if(doc.states) {
for (index = 0, len = doc.states.length; index < len; ++index) {
emit(doc.states[index],null);
}
}
}
}
此视图将为每个 'customer' 类型文档的数组中的每个状态发出一个视图行。这意味着您可以 select 具有 "CA" 起始键和 "CA" 结束键的单个状态,请记住将 inclusive_true 标志设置为 true,以便匹配的结束键包括:
startkey="CA"&endkey="CA"&inclusive_end=true
希望对您有所帮助!
我正在研究 couchbase lite android。 我有一系列文档,每个文档都包含一个字段,它的值是字符串数组。 现在我想过滤这个字段的值。
{
type : "customer",
name: "customerX",
states: [ "IL" , "IO" , "NY" , "CA" ]
},
{
type : "customer",
name: "customerY",
states: [ "WY" , "CA", "WA" ]
},
{
type : "customer",
name: "customerZ",
states: [ "NY" ]
}
我想获取状态字段中有 "CA" 的客户文件。 我正在使用 CBL Android.
emit(states , null);
那我怎样才能让我的开始和结束键选项。
startkey("CA")
Or
startKey(["CA"])
customerX customerY
如何在他们的状态字段中通过 "CA" 仅获得 customerX 和 customerY?!
如果您只想过滤一个状态,那么最好的解决方案是制作这样的视图:
function (doc, meta) {
if(doc.type && doc.type == "customer") {
if(doc.states) {
for (index = 0, len = doc.states.length; index < len; ++index) {
emit(doc.states[index],null);
}
}
}
}
此视图将为每个 'customer' 类型文档的数组中的每个状态发出一个视图行。这意味着您可以 select 具有 "CA" 起始键和 "CA" 结束键的单个状态,请记住将 inclusive_true 标志设置为 true,以便匹配的结束键包括:
startkey="CA"&endkey="CA"&inclusive_end=true
希望对您有所帮助!