したがってthreads
、各スレッドに複数のメッセージが含まれ、どのユーザーがどのメッセージまで読んだかというデータも含まれているオブジェクトのこのドキュメント構造があります。
スレッドコレクション:
{
_id: ObjectId("5f1f0725850eca800c70ef9e"),
thread_participants: [
ObjectId("5f1efeece50f2b25d4be2de2"),
ObjectId("5f1eff1ae50f2b25d4be2de4"),
],
messages: [
{
id: ObjectId("5f1f0725850eca800c70ef98"),
content: "Hello",
},
{
id: ObjectId("5f1f0725850eca800c70ef92"),
content: "Hey there!",
},
],
seen_status: [
{
user_id: "5f1efeece50f2b25d4be2de2",
last_read_message_id: ObjectId("5f1f0725850eca800c70ef98")
},
{
user_id: "5f1eff1ae50f2b25d4be2de4",
last_read_message_id: null //User has not opened the conversation at all.
}
],
date_created: ISODate("2020-07-27T16:29:54.702Z"),
}
...
...
...
multiple threads
どのように私は、スレッド上の特定のUSER_IDのlast_read_message_id更新しない5f1f0725850eca800c70ef9e
のuser_idのために、5f1eff1ae50f2b25d4be2de4
?
$定位置演算子を使用できます:
db.col.update({ _id: ObjectId("5f1f0725850eca800c70ef9e"), seen_status.user_id: "5f1eff1ae50f2b25d4be2de4" }, { $set: { 'seen_status.$.last_read_message_id': newValue } }
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加