在 couchDB 中制作多个单独的键

问题描述

我有以下观点

{
  "_id": "_design/view2","_rev": "7-12d726e051cc03a083b0b0fcffd721fd","views": {
    "view2": {
      "map": "function (doc) {\n  emit([doc._id,doc.pos,doc.id16,doc.Oid,doc.resultTime],1);\n}"
    }
  },"language": "javascript"
}

我想查询 bt 单键值。例如,我想要所有 Oid=123 的文档,我不担心其他键值。我该怎么做?

另外,还有什么其他方法可以通过查询任何单个值来获取文档?

提前致谢。

解决方法

您需要在设计文档中创建另一个仅发出 oid 字段的视图,并在您的查询中使用该视图。可以通过将设计文档中的 views 更改为以下内容来完成:

"views": {
    "view2": {
      "map": "function (doc) {\n  emit([doc._id,doc.pos,doc.id16,doc.Oid,doc.resultTime],1);\n}"
    },"byOrderId": {
      "map": "function (doc) {\n  emit(doc.Oid,doc._id);\n}"
    }
  }

附言在上面的视图(byOrderId) 中,我发出了 Oid 作为键和文档的 _id 作为值。如果您需要文档的任何其他字段,您可以更改发出的值,或者如果您的用例需要整个文档,您可以使用查询的 include_docs 参数。