如何在couchDb选择器中从数组中选择一个嵌套元素?

如何在couchDb选择器中从数组中选择一个嵌套元素?,couchdb,couchdb-mango,Couchdb,Couchdb Mango,我正在尝试编写一个过滤器,将数据复制到另一个CouchDB服务器。作为过滤器的一部分,我只想根据过滤器选择文档的某些部分。选择器中的字段可以获取根节点,但是如何拾取嵌套元素 以下是示例文档结构: { "_id" : "1231212", "name" : "", "a" : [ { "x" : "123", "y": "123" , "z" : 123"", "l" : [1, 2, 3] }, {

我正在尝试编写一个过滤器,将数据复制到另一个CouchDB服务器。作为过滤器的一部分,我只想根据过滤器选择文档的某些部分。
选择器
中的
字段
可以获取根节点,但是如何拾取嵌套元素

以下是示例文档结构:

{
    "_id" : "1231212",
    "name" : "",
    "a" : [
    {
      "x" : "123",
      "y": "123" ,
      "z" : 123"",
      "l" : [1, 2, 3]
    },
    {
      "x" : "456",
      "y": "456" ,
      "z" : "456",
      "l" : [4, 5, 6]
    }
  ]
}
是否可以放置选择器来拾取字段,该字段是数组中的一个元素。在上面的文档结构中,我可以用数组“l”中的元素过滤数据,但我只能显示该元素

{
   "selector": {
    "a": {
        "$elemMatch": {
            "l": {
                "$in": [
                4
                ]
            }
        }
    }
  },
   "fields": [
      "name",
      "a"
   ]
}
如果我使用这个选择器,它给出“a”数组的两个元素。但我只需要过滤元素

对于上述过滤器,我期望:

{
    name : "",
    "a" : [
    {
      "x" : "456",
      "y": "456" ,
      "z" : "456",
      "l" : [4, 5, 6]
    }
  ]
}
我得到的是

{
    "_id" : "1231212",
    "name" : "",
    "a" : [
    {
      "x" : "123",
      "y": "123" ,
      "z" : 123"",
      "l" : [1, 2, 3]
    },
    {
      "x" : "456",
      "y": "456" ,
      "z" : "456",
      "l" : [4, 5, 6]
    }
  ]
}

是否可能?

您不能复制部分文档。这就是你要问的吗?是的,谢谢你的回复。你不能复制部分文档。这就是你要问的吗?是的,谢谢你的回答
{
    "_id" : "1231212",
    "name" : "",
    "a" : [
    {
      "x" : "123",
      "y": "123" ,
      "z" : 123"",
      "l" : [1, 2, 3]
    },
    {
      "x" : "456",
      "y": "456" ,
      "z" : "456",
      "l" : [4, 5, 6]
    }
  ]
}