次のようなドキュメントがあります
{
...
reactions: [
{
user: 'user_id',
reaction: 'reaction_name'
}, {
user: 'user_id',
reaction: 'reaction_name'
}
]
...
}
一意になる「ユーザー」と「反応」の組み合わせに基づいて、配列反応の項目を削除しようとしています。反応配列をフィルタリングして、js ドライバーを使用して rethinkdb の特定の項目を削除するにはどうすればよいですか?
私はこれを試しました
r.db('db_name').table('messages').getAll(
get_single_message
).update({
reactions: r.row('reactions').filter( (item) => {
return item('reaction').ne(body.reaction).and(item('user').ne(body.user))
})
}).run(this._rdbConn)
それが機能しない理由を理解しています (反応を与えていないすべての反応を返し、特定のユーザーを持たないその配列のサブセットを返します)。私が望むのは、それらの等しくないものが同期して実行されるため、提供された反応とユーザーを持つアイテムを含まない配列を返すことです。現時点では、リアクション OR ユーザーのように機能します。