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