Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 查找文档数组CouchDB_Arrays_Find_Couchdb - Fatal编程技术网

Arrays 查找文档数组CouchDB

Arrays 查找文档数组CouchDB,arrays,find,couchdb,Arrays,Find,Couchdb,我有文件他们有这样的结构: {id: ####, rev: ####, "Cam_name": "Camera SX", "colour": "white", "manufacturer": "Sony", "rec_limit": 180, "Customer": ["Mike","Ann","James"] } {id: ####, rev: ####, "Cam_name": "PXSV CAM", "colour": "white", "manufacturer": "LG", "re

我有文件他们有这样的结构:

{id: ####,
rev: ####,
"Cam_name": "Camera SX",
"colour": "white",
"manufacturer": "Sony",
"rec_limit": 180,
"Customer": ["Mike","Ann","James"]
}

{id: ####,
rev: ####,
"Cam_name": "PXSV CAM",
"colour": "white",
"manufacturer": "LG",
"rec_limit": 144,
"Customer": ["Mike","Oliver","Mr. Rain"]
}

{id: ####,
rev: ####,
"Cam_name": "LxSV Double",
"colour": "white",
"manufacturer": "Phillips",
"rec_limit": 160,
"Customer": ["Mike"]
}
我想做一个映射函数查询,在这里我可以看到客户Mike正在使用的所有Cam_名称

我有一个类似的映射函数,但它只显示Cam_名称LxSV Double和客户Mike。我想显示迈克正在使用的所有摄像机名称

我的查询:

function(doc){
if(doc.Customer == "Mike"){
emit(doc.Cam_name, doc.Customer)
这个查询给我的结果不正确

如果您的查询看起来与此完全相同,则您有一个语法错误。但是,
doc.Customer
也是一个数组,所以不能进行简单的相等性检查

但是检查数组中是否存在值是完全没有必要的,您的map函数可以简单地如下所示:

function (doc) {
  doc.Customer.forEach(function (customer) {
    emit(customer, doc.Cam_name);
  });
}
然后,使用
/{db}/{ddoc}/{u view/{view}?key=“Mike”

您的输出将如下所示:

{
  "total_rows": 3,
  "offset": 0,
  "rows": [
    {
      "id": "####",
      "key": "Mike",
      "value": "Camera SX"
    },
    {
      "id": "####",
      "key": "Mike",
      "value": "PXSV CAM"
    },
    {
      "id": "####",
      "key": "Mike",
      "value": "LxSV Double"
    }
  ]
}

现在,您可以使用相同的视图查找任何客户,而不仅仅是您在地图功能中指定的任何人。

我只使用futon。这是什么意思?Futon是一个管理界面,它不是一个真正的通用查询工具。您使用的是什么版本的CouchDB?如果你使用的是一个相当新的版本,你可以看看Futon的替代品,它被称为。它提供了一种在浏览视图时添加查询参数的方法。我使用的是verison 1.6.1。您知道如何生成查询吗?我用Node.js读了一些东西。。但这让事情变得复杂了。我以前从未使用过javascript。你能给我一个简短的一步一步的介绍吗?StackOverflow是一个问答网站,它不是一个如何操作的网站。我鼓励你浏览一个更专注于教程和操作的网站。多亏了多米尼克,我现在保存了我的地图功能。现在如何使用curl查询我的视图?