我有这个结构符合我正在使用的MongoDB集合的类型:
原文链接:https://www.f2er.com/go/186983.htmltype 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评估而不是插入?
第二个答案可以回答第一个答案,但也可能不是.