Comment obtenir l'horodatage à partir de l'identifiant MongoDB ?
Réponses
Trop de publicités?
Alok Deshwal
Points
914
En la documentation officielle :
ObjectId('mongodbIdGoesHere').getTimestamp();
KorbenDallas
Points
401
Si vous avez besoin d'obtenir l'horodatage de MongoID dans un GoLang :
package main
import (
"fmt"
"github.com/pkg/errors"
"strconv"
)
const (
mongoIDLength = 24
)
var ErrInvalidMongoID = errors.New("invalid mongoID provided")
func main() {
s, err := ExtractTimestampFromMongoID("5eea13924a04cb4b58fe31e3")
if err != nil {
fmt.Print(err)
return
}
fmt.Printf("%T, %v\n", s, s)
// convert to usual int
usualInt := int(s)
fmt.Printf("%T, %v\n", usualInt, usualInt)
}
func ExtractTimestampFromMongoID(mongoID string) (int64, error) {
if len(mongoID) != mongoIDLength {
return 0, errors.WithStack(ErrInvalidMongoID)
}
s, err := strconv.ParseInt(mongoID[0:8], 16, 0)
if err != nil {
return 0, err
}
return s, nil
}
Terrain de jeux : https://play.golang.org/p/lB9xSCmsP8I
Mohammed Osman
Points
548
Infomaster
Points
321
- Réponses précédentes
- Plus de réponses
1 votes
Juste pour info, la deuxième réponse devrait probablement être la réponse acceptée. Elle est implémentée dans tout pilote JS qui utilise le pilote JS natif de MongoDB (c'est-à-dire tous ceux que je connais).
0 votes
Je ne suis pas d'accord avec Dropped.on.Caprica, la réponse acceptée ne nécessite pas d'avoir une bibliothèque pour obtenir la date, donc pour moi c'est mieux.
2 votes
Dans mon cas, j'ai dû faire l'analyse de l'horodatage côté client, et non pas là où se trouve le pilote JS pour MongoDB, donc pour moi aussi la réponse actuellement acceptée est la meilleure. Mais il est bon de connaître les *.
getTimestamp
aussi, donc +1 aux deux :)