Моя задача - писать чат с историей. Поэтому для создания истории мне нужно, чтобы каждый из сообщений отправлялся на Mongodb, и когда у меня есть следующее соединение, мне нужно получить все сообщения и, с циклом, отправить всем клиентам, которые подключены к чатуПолучение элементов из коллекции MongoDB с использованием Golang и mgo
Это код моего чат-сервера
func ChatServer(ws *websocket.Conn) {
// Connecting to MongoDB, collection History
session, err := mgo.Dial("mongodb://******:*******@ds045795.mongolab.com:45795/catalog")
if err != nil {
panic(err)
}
defer session.Close()
session.SetMode(mgo.Monotonic, true)
c := session.DB("catalog").C("History")
// fmt.Println(c.Find())
// Adding clients to the map
clientId := ws.RemoteAddr().String()
defer ws.Close()
clients[ws] = true
// Loop for receiving msg
for {
var msg string
// If can not read msg - delete client from map
if err := websocket.Message.Receive(ws, &msg); err != nil {
delete(clients, ws)
return
}
sendAll(msg)
err = c.Insert(&Connect{clientId, msg})
if err != nil {
log.Fatal(err)
}
}
}
Так моя проблема получает все элементы в порядке из коллекции. Я понятия не имею, как это сделать, потому что не может найти правильную функцию в документах. Возможно, у вас есть другие предложения?
Вы не вставив метку времени с сообщениями? –
Нет, я не вставляю штамп времени –
Итак, как определить «порядок»? Автомагически? –