Couchbase - 如果键的值为空(即长度为 0 ),则获取文档
Couchbase - get doc if value of key is empty (i.e. has length 0 )
我在 Couchbase 中有一个用于检索数据的视图。简化后,我的数据桶包含:
{
"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);
}
我得到了 none 个。
我想获得 id = 456 的 json。正确的语法是什么?
那是因为空字符串在javascript
中是假的
~ $ 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 === "")
三等号会更严格地将其与字符串进行比较
我在 Couchbase 中有一个用于检索数据的视图。简化后,我的数据桶包含:
{
"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);
}
我得到了 none 个。 我想获得 id = 456 的 json。正确的语法是什么?
那是因为空字符串在javascript
中是假的~ $ 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 === "")
三等号会更严格地将其与字符串进行比较