我有一个带聊天室的应用程序。 每个聊天室都有自己的mongodb系列。 除了其他信息,我还想在“消息”字段中保存每个聊天聊天室的聊天记录。
Database: myApp
Collection: "chatroom_1"
例如,集合“chatroom_coders”应具有:
{
roomName: coders,
messages: {
0: {sentByUserID: 1, message: 'hi', chatID: 0},
1: {sentByUserID: 1, message: 'hi', chatID: 1},
100: {sentByUserID: 1, message: 'hi', chatID: 100},
},
filesShared: ['penguin.png', 'turtle.png'],
created_at: null,
updated_at: null
}
然后我想检索上面存储的数据。然后我将操纵它(在我这边,在JS中),例如delete chatrooms['chatroom_coders'].messages[0]
,并且需要更新集合以删除该字段。
尚不确定如何实现我想要的功能,并且无法在网络上找到正确的信息。如何将消息添加到消息(并创建该消息对象)到该特定的聊天室集合? 关于改进我希望在mongodb中存储数据的方式的建议也将受到赞赏。
答案 0 :(得分:0)
您可能希望有一个跟踪消息最后索引的索引,因此您的结构类似于
{
roomName: coders,
messages_index : 100,
messages: {
0: {sentByUserID: 1, message: 'hi', chatID: 0},
1: {sentByUserID: 1, message: 'hi', chatID: 1},
100: {sentByUserID: 1, message: 'hi', chatID: 100},
},
filesShared: ['penguin.png', 'turtle.png'],
created_at: null,
updated_at: null
}
然后,您可以更新索引,查询索引并将其用作新对象的键