Golang / mgo: Comment puis-je demander à MongoDB d'utiliser l'heure actuelle dans un champ?
J'ai cette structure qui correspond à des types d'une collection MongoDB, je suis en utilisant:
type AppInstance struct {
Id bson.ObjectId "_id,omitempty"
Url string
Priority int
LastSeen string
}
Je veux le LastSeen champ de tenir le temps de la dernière interaction avec cette application particulière. Ainsi, l'application enregistre lui-même réglage de l'heure actuelle (comme une chaîne de caractères).
Ce que je voudrais, c'est Mongo pour définir dynamiquement ses propres heure actuelle dans ce domaine lorsqu'il insère, tout comme MySQL, la fonction NOW() ferait.
J'ai cette fonction d'assistance:
func mongoNow() bson.JavaScript {
return bson.JavaScript{Code:
"return (new Date()).ISODate('YYYY-MM-DD hh:mm:ss');"}
}
Et j'ai essayé ceci:
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)
la LastSeen champ est stocké comme un script au lieu de l'évaluation:
[_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 (
)
)
Donc, je pense qu'il y a de questions:
Tout d'abord, comment puis-je insérer l'heure actuelle?
Deuxièmement, comment puis-je obtenir un peu de javascript (évalué au lieu de les insérer?
La réponse à la deuxième on pourrait suffire à répondre à la première, mais il pourrait aussi bien ne pas l'être.
source d'informationauteur Sebastián Grignoli
Vous devez vous connecter pour publier un commentaire.
N'entreposez pas de temps comme une chaîne de caractères. mgo prend en charge temps.Le temps qui est comme un
Date
objet en Javascript:Insérer un événement qui s'est passé aujourd'hui:
Dans Mongo 2.6 vous pouvez le faire en natif avec $currentDate opérateur.