私はcouchdbデータベースに次のドキュメント構造を持っています:
{
'type': 'Message',
'subject': 'Cheap V1@gr@',
'body': 'not spam',
'metadata': {
'participation': {
'read': [1,2,3]
}
}
}
read
配列は、メッセージを読んだユーザー ID のリストです。次のように、ユーザーが読んだメッセージでメッセージのリストをフィルタリングできるビューを簡単に作成できます。
マップ機能
function(doc) {
doc['metadata']['participation']['read'].forEach(function(user_id) {
emit(user_id, doc._id);
});
}
次に、次のクエリを実行しますuser_id = 1
。
curl -X GET \
http://localhost:5984/couchrest/_design/Message/_view/included_in_read?key=1
私の質問は、ユーザーの ID が配列に含まれていないドキュメント、つまり「未読」メッセージを返すビュー/クエリを作成するにはどうすればよいかということです。read