[
https://issues.apache.org/jira/browse/COUCHDB-2867?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15942354#comment-15942354
]
Stefan Buhrmester commented on COUCHDB-2867:
--------------------------------------------
Hmm I don't think that introducing a `json-deep` type is a good solution.
Rather the `json` type index should be changed to support that.
eg:
Have a document:
{code}
{
_id: "et34t3geg",
tags: [{name: "movies"}, {name: "bikes"}]
}
{code}
Then it should be indexed by
{code}
{
"index": {
"fields": ["tags.[].name"]
},
"name" : "myindex",
"type" : "json"
}
{code}
And queried by
{code}
selector: {"tags": {$elemMatch: {name: "movies"}}
{/code}
In the case above the indexer should be smart enough to use the `tags.[].name`
index.
> Mango: should be able to index *within* arrays
> ----------------------------------------------
>
> Key: COUCHDB-2867
> URL: https://issues.apache.org/jira/browse/COUCHDB-2867
> Project: CouchDB
> Issue Type: Improvement
> Components: Mango
> Reporter: Nolan Lawson
>
> If you have a document like:
> {code:javascript}
> {
> "_id": "foo",
> "tags": ["a", "b", "c"]
> }
> {code}
> ...then you should be able to run queries that find e.g. all documents with
> "a" as a tag, and it should be *indexed*. Currently there doesn't seem to be
> any way to do this except as an in-memory selector, which is a real bummer,
> because it's a super common use case. (Tags, categories, labels, etc.)
> Originally I thought this was how {{$elemMatch}} worked, and I was surprised
> to learn that that's not the case.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)