我的任務是與歷史記錄聊天。因此,爲了創建歷史記錄,我需要將每條消息發送到Mongodb,並且當我有下一個連接時,我需要獲取所有消息,並隨循環發送到所有連接到聊天的客戶端。使用Golang和mgo獲取Collection MongoDB中的元素
這是我的ChatServer代碼
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)
}
}
}
所以我的問題正在從集合中獲取所有元素。 我不知道該怎麼做,因爲在文檔中找不到合適的功能。 也許你有其他優惠?
你不插入與消息的時間標誌? –
不,我不插入時間戳 –
那麼「訂單」如何確定?自動的? –