将对象添加到mongodb集合中的对象

时间:2015-09-28 21:38:38

标签: javascript node.js mongodb

我有一个带聊天室的应用程序。 每个聊天室都有自己的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中存储数据的方式的建议也将受到赞赏。

1 个答案:

答案 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
}

然后,您可以更新索引,查询索引并将其用作新对象的键