草庐IT

mongodb - MongoDB高级聚合

全部标签

mongodb - 将 mgo 用于嵌套文档字段

我将Golang与用于mongodb的mgo驱动程序一起使用。根据http://labix.org/mgo中的示例一切都很好。但是我找不到任何文档说明mgo如何支持“点符号”以便能够设置和删除嵌套字段。那么,如何访问嵌套字段?还有一个问题是关于goLangnameconvention的。当我用s.FindId(...).One(&doc)填充我的结构时,doc是否可以包含小写名称的字段,例如“timer”而不是“Timer”?mgo是否有可能从mongo获取非结构化文档并只返回map[string]string? 最佳答案 参见mg

mongodb - 在Go中使用mgo找出插入对象的结果

请问有没有办法在使用collection插入新对象的时候判断插入是否成功。通过单个操作插入(对象)。我的意思是,我不想向数据库发送另一个查询来查明是否有记录。我需要一个原子操作(insert->result(isSuccessful)-伪代码)。 最佳答案 Insert方法返回一个表示成功或失败的错误对象。您需要先设置session的安全模式才能启用此行为。session.SetSafe(&mgo.Safe{})// 关于mongodb-在Go中使用mgo找出插入对象的结果,我们在Sta

mongodb - 使用 mGo 导入备份集合

我有一个来自mongodump的BSON导出,还有一个用于mongoexport的JSON导出使用mgo导入的最简单方法是什么?mgo是否支持插入备份的BSON集合?或者我是否需要使用JSON导出、解码然后使用mgo执行insert()?问题是我不想在我的Go文件中指定方案-我只想将文件转储到数据库中。 最佳答案 Whatwouldbetheeasiestwaytoimportwithmgo?最简单?从您的go程序中取出mongorestore。繁荣,完成。Doesmgosupportinsertingabacked-upBSONc

mongodb - 无法使用 golang 将结构保存到 mongodb 中(仅创建空记录)

我有以下结构typeResultstruct{nidstringtimestampint64hexhashstringaddrstring}我想保存到mongodb中:我创造了它r:=Result{hex_id,int64(msg.timestamp.Unix()),hexhash,msg.addr.String()}并测试是否正确创建:fmt.Println(r)这给了我预期的结果:{b8da3f19d1318af6879976c1eea66c78c48e1144142141725265072917F19D7F4C4B54C9C66A3EB31F77012981127.0.0.1:6

mongodb - 使用 Go 在 MongoDB 中指定查询

对于如何将JavascriptJSON命令转换回go会理解的东西感到困惑。好的,这是mongoshell中的查询:db.customers.find({acct_balance:{$gt:100000}},{firstName:1,surname:1,acct_balance:1,_id:0})结果::{“firstName”:“Susann”,“surname”:“Ulisch”,“acct_balance”:238897.45}{“firstName”:“Parker”,“surname”:“Peet”,“acct_balance”:443314.13}现在我想在Go中复制该查询。

mongodb - MGO 驱动程序中的更新查询,适用于 bson.M,但不适用于自定义结构

Mgo和golang问题。我又遇到问题了。我尝试更新数据库中的记录,但运行简单命令visitors.UpdateId(v.Id,bson.M{"$set":zscore});wherezscore是类型Zscore的变量,不起作用。但是,如果我手动将zscore转换为bson.M结构,一切正常。有人知道如何使用mgo更新mongodb中的记录,而无需手动将结构值转储到bson.M中吗?示例:typeZscorestruct{afloat64`bson:"a,omitempty"json:"a"`bfloat64`bson:"b,omitempty"json:"b"`cfloat64`b

mongodb - 在mongodb中按日期查询

我可以使用golang驱动程序gopkg.in/mgo.vs和gopkg.in/mgo.vs/bson向MongoDB中插入一个条目,但是我拔不出来。在mongoshell中,如果我这样做了db.Items.find({date:1428762411980})它显示了我刚刚用Go代码插入的条目。但是,如果我尝试执行以下操作以在Go中获取它,它会告诉我找不到该记录funcfetch(whttp.ResponseWriter,r*http.Request){varresultSomeStructdate:=r.FormValue("date")err:=Items.Find(bson.M{

mongodb - 当键包含大写字母时无法使用 mgo 检索值

来自mongoDB的一个数据是{"_id":ObjectId("5536def4e4b0644323e219a8"),"title":"TheTitle","description":"TheDescription","timeStamp":"21/04/2015","category":"news","url":"http://www.example.com","source":"EveningTimes","mainStory":"Thisisthemainstory."}在我的代码中,结构是typeNewsDatastruct{Titlestring`bson:"title"js

mongodb - 通过 mgo 驱动程序设置 MongoDB 写关注

我有一个Go客户端,它重复将数据插入MongoDB1分钟。我不希望客户端确认写入,直到它们被复制到我的主-辅助-仲裁副本集的辅助副本,所以我通过mongoma​​jority写入关注/strong>外壳。但是,客户端的执行远远早于将写入复制到辅助节点之前完成(我正在观察文档计数以确保)。如果主节点在复制完成之前崩溃,数据将被回滚——从客户端的角度来看——已经被确认。这种行为是否与我通过shell设置的多数写入问题相矛盾?我是否还需要通过mgo驱动程序设置写入关注?本文建议我需要:RunningMongoDBQueriesConcurrentlyWithGoWeusethemgo.Dia

mongodb - Mgo(mongo for go)支持物化路径?

使用BSON和Mgo(用于go的丰富mongodb驱动程序),一种方法将如何实现物化路径?物化路径已记录here在mongo文档上。物化路径旨在为多层嵌套数据提供树状结构。使用纯javascript,命令如下(来自documentation):db.categories.insert({_id:"Books",path:null})db.categories.insert({_id:"Programming",path:",Books,"})db.categories.insert({_id:"Databases",path:",Books,Programming,"})db.cate