Cloudant/CouchDB 按嵌套数组的内容查询
Cloudant/CouchDB query by content of nested array
在我的 cloudant 数据库中,我有这样的对象。我想查询基于嵌套数组中的属性的对象。
在下面的示例中,如何查询所有投票对象为 userId=="user1" 的对象?查询应该 return 这两个对象。当我搜索 userId "user2" 时,它应该 return 第一个,因为第二个对象只有 user1 和 user4 的投票。
{
"_id": "1",
"votes": [
{
"userId": "user1",
"comment": ""
},
{
"userId": "user2",
"comment": ""
},
{
"userId": "user3",
"comment": ""
}
]
}
{
"_id": "2",
"votes": [
{
"userId": "user1",
"comment": ""
},
{
"userId": "user4",
"comment": ""
}
]
}
此视图将 return 按 userId 排序的所有投票列表(其中投票是 userId 和 _id),仅让 user1 使用 ?key="user1"
function(doc) {
for(i in doc.votes)
emit(doc.votes[i].userId, doc._id);
}
/dbName/_design/foo/_view/bar?key="user1"
{"total_rows":5,"offset":0,"rows":[
{"id":"1","key":"user1","value":"1"},
{"id":"2","key":"user1","value":"2"}
]}
在我的 cloudant 数据库中,我有这样的对象。我想查询基于嵌套数组中的属性的对象。
在下面的示例中,如何查询所有投票对象为 userId=="user1" 的对象?查询应该 return 这两个对象。当我搜索 userId "user2" 时,它应该 return 第一个,因为第二个对象只有 user1 和 user4 的投票。
{
"_id": "1",
"votes": [
{
"userId": "user1",
"comment": ""
},
{
"userId": "user2",
"comment": ""
},
{
"userId": "user3",
"comment": ""
}
]
}
{
"_id": "2",
"votes": [
{
"userId": "user1",
"comment": ""
},
{
"userId": "user4",
"comment": ""
}
]
}
此视图将 return 按 userId 排序的所有投票列表(其中投票是 userId 和 _id),仅让 user1 使用 ?key="user1"
function(doc) {
for(i in doc.votes)
emit(doc.votes[i].userId, doc._id);
}
/dbName/_design/foo/_view/bar?key="user1"
{"total_rows":5,"offset":0,"rows":[
{"id":"1","key":"user1","value":"1"},
{"id":"2","key":"user1","value":"2"}
]}