为文档名称创建选择器

问题描述

我正在使用CouchDB v3.1.0,并试图为/{db}/_find创建一个选择器来查找名为“ foobar”的文档。

在文档部分1.3.6.1.1 Selector Basics中,提到了$title

"selector": {
  "$title": "Live And Let Die"
}

但是,当我尝试像这样使用它时:

curl -X POST -H "Content-Type: application/json" \
http://my-host-machine:5984/testdb/_find \
-d '{"selector":{"$title":"foobar"}}' --user admin | jq .

输出以下错误消息:

{
  "error": "invalid_operator","reason": "Invalid operator: $title"
}

做什么的工作是使用选择器中的_id字段:'{"selector":{"_id":"foobar"}}'

但是,使用文档的唯一标识符不正确。我的问题:

  • $title是否有效? (我只是使用不正确)
  • _id是合适的方法吗?

解决方法

如果名称字段带有美元符号($)前缀,则CouchDB会将其解释为operator$title不是有效的运算符,文档中的相关selector示例似乎是错误的。

另一方面,当您需要通过带有美元符号($)的字段选择文档时,此answer可能会有用。