具有OR条件的CouchDB视图

vik*_*s27 1 database couchdb

我在couchDB中有两种文件,其中包含以下json类型:

1. 
{
 "_id": "4a91f3e8-616a-431d-8199-ace00055763d",
 "_rev": "2-9105188217acd506251c98cd4566e788",
 "Vehicle": {
     "type": "STRING",
     "name": "Vehicle",
     "value": "12345"       
 },
"Start": {
     "type": "DATE",
     "name": "Start",
     "value": "2014-09-10T11:19:00.000Z"      
 }
}

2. 
{
   "_id": "4a91f3e8-616a-431d-8199-ace00055763d",
   "_rev": "2-9105188217acd506251c98cd4566e788",
   "Equipment": {
       "type": "STRING",
       "name": "Equipment",
       "value": "12345"       
   },
"Start": {
   "type": "DATE",
   "name": "Start",
   "value": "2014-09-10T11:19:00.000Z"      
 }
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个视图,搜索所有这些doc.Vehicle.value = 12345或doc.Equipment.value = 12345的文档.如何使此视图返回所有这些类型的文档.提前致谢.

Kxe*_*pal 5

只需向您的视图发出两个(是的,地图函数可能会为同一个doc发出多次不同的键值)值:

function(doc){
  if (doc.Equipment) {
    emit(doc.Equipment.value, null)
  }
  if (doc.Vehicle) {
    emit(doc.Vehicle.value, null)
  }
}
Run Code Online (Sandbox Code Playgroud)

并通过相同的密钥请求他们:

http://localhost:5984/db/_design/ddoc/_view/by_equip_value?key="12345"
Run Code Online (Sandbox Code Playgroud)

有关CouchDB视图的更多信息,另请参见视图指南.