Couchbase - 如果key的值为空(即长度为0),则获取doc

时间:2016-02-19 16:50:46

标签: couchbase couchbase-view

我在Couchbase中有一个View用于检索我的数据。简化,我的数据桶包含:

{
    "id" : 123,
    "key" : "some value"
},
{
    "id" : 456,
    "key" : ""
}
...

我希望得到所有'key'存在的文档,但它的值为空。

如果我使用这样的视图:

function (doc, meta) {
  if(doc.key)
    emit([doc.id], doc);
}

如果我使用这样的视图,我会得到上面的两个JSON:

function (doc, meta) {
  if(doc.key && doc.key == "")
    emit([doc.id], doc);
}

我没有得到任何一个。 我想得到id = 456的json。正确的语法是什么?

1 个答案:

答案 0 :(得分:0)

这是因为javascript中的空字符串为false

~ $ node 
> var x = ""
undefined
> x
''
> if (x && x == "") { console.log("it is empty") }
undefined
> if (x) { console.log("it is empty") }
undefined
> if (!x) { console.log("it is empty") }
it is empty
undefined

您应该使用类似

的内容
if(doc.key === "")

Triple equals会将它与字符串更严格地进行比较