使用带有布尔参数的couchbase视图时出现问题

时间:2014-01-24 16:36:45

标签: couchbase couchbase-view

我在使用带有布尔键的couchbase map函数时遇到了问题。

我用布尔参数写了一个map函数,但是当我尝试使用这个函数传递值“false”作为键时,函数不返回任何内容

示例文档:

{
   "name": "lorem ipsum",
   "presentationId": "presentation_24e53b3a-db43-4d98-8499-3e8f3628a9c6",
   "fullPrice": 8,
   "isSold": false,
   "buyerId": null,
   "type": "ticket",
}

地图功能:

function(doc, meta) { 
     if (doc.type == "ticket" && doc.isSold && doc.presentationId) { 
         emit([doc.isSold, doc.presentationId], null); 
     } 
 }

的http://本地主机:8092 /默认/ _design /车票/ _view / by_presentation_and_isSold键= [假 “presentation_24e53b3a-db43-4d98-8499-3e8f3628a9c6”]

结果:

{"total_rows":10,"rows":[]}]}

1 个答案:

答案 0 :(得分:2)

由于你在emit语句之前对doc.isSold进行的检查,你遇到了这个问题,检查意味着只有doc.isSold == TRUE的文件正在通过。

您需要做的是检查变量是否已设置而不是评估布尔值:

function(doc, meta) { 
    if (doc.type == "ticket" && doc.isSold != null && doc.presentationId) { 
       emit([doc.isSold, doc.presentationId], null); 
    } 
}

希望有所帮助:)