golang mgo 查詢和更新內嵌文檔

在mongoDB的shell中查找並顯示特定的鍵值對的語法是:

> db.logs.find({},{"log":1})
{ "_id" : "3a06384a40a8e587806f194c6c80253e", "log" : "這是一個測試日誌" }
{ "_id" : "36bb718040a4362b8035ebd822125dba", "log" : "這是一個測試日誌" }
上面這條指令是查找所有文檔,顯示 鍵爲“log"的鍵值對”。

如果需要不顯示“_id”鍵值對,可以這麼寫

> db.logs.find({},{"_id":0,"log":1})
{ "log" : "這是一個測試日誌" }
{ "log" : "這是一個測試日誌" }

 在golang中的mgo寫法卻需要藉助mgo中的select()方法實現,代碼如下:

err = d.Find(bson.M{}).Select(bson.M{"log": 1}).All(&result1)

在mongodb中更新內嵌文檔鍵值對的語法如下:

err = collection.Update(bson.M{"_id": 123456}, bson.M{"$set": bson.M{"info.name": "new"}})

上面指令作用是更新"_id”爲123456文檔中的“info”下的“name”鍵值對。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章