У меня есть приложение с чатами. У каждого чата есть своя коллекция в 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 также будут оценены.
Итак ... удалить конкретное сообщение на основе индекса? (http://stackoverflow.com/questions/4588303/in-mongodb-how-do-you-remove-an-array-element-by-its-index) – tymeJV
@tymeJV Первое, что мне нужно сделать, это добавить сообщение в объект сообщений конкретной коллекции чатов. – jSmith
, вы, вероятно, не хотите хранить все сообщения в одном объекте mongodb. Вероятно, лучше было бы сохранить каждый объект сообщения как независимый объект. Где каждый объект сообщения имеет поле, которое ссылается на объект chatroom. – bhspencer