我有一个与我正在使用的MongoDB集合类型匹配的结构:
type AppInstance struct {
Id bson.ObjectId "_id,omitempty"
Url string
Priority int
LastSeen string
}
我希望LastSeen字段保存与该特定应用程序的最后一次交互的时间。因此,应用程序会自行注册以设置当前时间(以字符串形式)。
我想要的是Mongo在插入时动态地将自己的当前时间设置到该字段中,就像MySQL的NOW()函数一样。
我有这个辅助功能:
func mongoNow() bson.JavaScript {
return bson.JavaScript{Code:
"return (new Date()).ISODate('YYYY-MM-DD hh:mm:ss');"}
}
我尝试了这个:
c := mongoSession.DB("myapp").C("instances")
rand.Seed(time.Now().UnixNano())
err := c.Insert(
struct{Id, Serial, Priority, Url, LastSeen interface{}}{
Id: bson.NewObjectId(),
Url: getInformedHost() + ":" + getRunningPortString(),
Priority: rand.Int(),
LastSeen: mongoNow() }
)
checkError(err, "Could not register on MongoDB server.", 3)
LastSeen字段存储为脚本而不是评估:
[_id] => MongoId Object (
[$id] => 502d6f984eaead30a134fa10
)
[id] => MongoId Object (
[$id] => 502d6f98aa443e0ffd000001
)
[priority] => 1694546828
[url] => 127.0.0.1:8080
[lastseen] => MongoCode Object (
[code] => (new Date()).ISODate('YYYY-MM-DD hh:mm:ss')
[scope] => Array (
)
)
因此,我认为存在一些问题:
首先,如何插入当前时间?
其次,如何获取一些经过评估而不是插入的JavaScript?
对第二个答案的答案可能足以回答第一个答案,但也可能并非如此。
不要将时间存储为字符串。mgo支持time.Time,它类似于Date
Javascript中的对象:
type Event struct {
Id bson.ObjectId "_id,omitempty"
Which string
Date time.Time
}
插入一个现在发生的事件:
e := Event{
Which: "first event",
Date: time.Now(),
}
c.Insert(e)
问题内容: 我读过多个有关使用mgo保存文件的博客,但找不到满足特定需求的解决方案,请大声喊叫! 下面在MongoDb中插入对象: 下面能够保存文件: 现在,在插入对象之前,我需要将上述文件设置为: 我的结构对象: 用外行术语来说,问题是:如何使用mgo驱动程序通过GoLang结构在mongoDb中插入文件(从HTML表单接收)? 谢谢阅读!:) 更新: PDF存储在MongoDB中,如下所示:
问题内容: 我在mgo主页上浏览了该示例,但是我一直在努力寻找一种查询一系列值的方法。该行: 失败,带有: 我省去了不必要的代码… 问题答案: 该行: 需要更改为:
问题内容: 有人知道我们在mongodb shell中对golang mgo / bson使用的聚合命令等效吗? 像这样: 问题答案: 假设这是您的收藏夹: GoDoc参考: Collection.Pipe文档 管道及其方法
问题内容: 我目前正在尝试在mongodb内部的文档数组中提取单个对象。这是一个样本数据集: 我可以在mongo中使用以下命令成功查询: 我无法使用mgo进行相同操作,并尝试了以下操作: 使用嵌套(抛出:合成文字中缺少类型,地图文字中缺少键) 我正在使用httprouter,p.ByName(“ …”)调用是传递给处理程序的参数。 提前致谢。 问题答案: 将与该 方法一起使用,因为doc指出,这使
问题内容: 在MongoDB中,执行类似的操作将返回集合中的所有文档。 当使用包 **labix.org/v2/mgo** 在GoLang中工作时,例如,我这样做: 它抱怨它需要以接口形式输入。我需要做的就是检索所有文档并遍历它们,并立即显示每个文档。如何达到此效果?我所看到的所有示例似乎都已安装了过滤器。 问题答案: 找到了解决方案:
问题内容: 我在使用mgo将mongodb中保留golang结构时遇到问题。 问题是,在完成Insert()调用后,唯一保留在数据库中的是空文档 我检查struct字段是否确实已设置,并且不为空。关于为什么这样的任何想法。提示表示赞赏:)谢谢 问题答案: 您需要通过以大写字母开头的字段名称来导出字段。