[ 
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)

Reply via email to