You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@couchdb.apache.org by "Tony Sun (JIRA)" <ji...@apache.org> on 2015/11/03 18:05:27 UTC

[jira] [Commented] (COUCHDB-2867) Mango: should be able to index *within* arrays

    [ https://issues.apache.org/jira/browse/COUCHDB-2867?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14987619#comment-14987619 ] 

Tony Sun commented on COUCHDB-2867:
-----------------------------------

With JSON type indexes, the only way to do it is via an in-memory selector (one of our limitations). 

But with TEXT indexes, you can create a text index with:
{
    "index": {
        "fields": [{"name": "tags.[]", "type": "string"}]
    },
    "name" : "tags-array-index",
    "type" : "text"
}

then

{
  "selector": {"tags": { "$in": ["a"]}}
}




> 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.4#6332)