Est-il l'Équivalent de MAINTENANT() dans MongoDB
Je suis en train de migrer de mysql vers Mongodb et souhaitez insérer la date du jour comme je le fais avec NOW() de Mysql,
Personne ne sait de 1 de la ligne de solution ou dois-je le faire avec PHP?
Grâce
Il suffit d'insérer actuelle de PHP date (google pour php cours du temps)? Juste une spéculation, n'avez pas utilisé le PHP, mais la MongoDB pilote doit convertir PHP date de MongoDB (et de retour).
Il semble que c'est la seule solution. MongoDB du pilote n'offre pas la fonction NOW ().
Comment pourrait-il être différent de PHP fonction date/heure? Mais je pense que vous pouvez obtenir MongoDB pour exécuter le code javascript sur le serveur, si vous souhaitez que le serveur de temps (je ne sais pas exactement comment, docs...).
Je n'ai pas dit que c'est différent, mais il est Mysql, la fonction, je ne peux pas utiliser le Javascript sur le serveur, je suis à l'aide de PHP MONGODB pilote, et pas de SHELL/ scripts Python.
Vous pouvez exécuter le javascript sur le serveur avec le driver PHP, mais vous pouvez généralement ne devrait pas, il me semble. stackoverflow.com/a/11798227/1717300
Il semble que c'est la seule solution. MongoDB du pilote n'offre pas la fonction NOW ().
Comment pourrait-il être différent de PHP fonction date/heure? Mais je pense que vous pouvez obtenir MongoDB pour exécuter le code javascript sur le serveur, si vous souhaitez que le serveur de temps (je ne sais pas exactement comment, docs...).
Je n'ai pas dit que c'est différent, mais il est Mysql, la fonction, je ne peux pas utiliser le Javascript sur le serveur, je suis à l'aide de PHP MONGODB pilote, et pas de SHELL/ scripts Python.
Vous pouvez exécuter le javascript sur le serveur avec le driver PHP, mais vous pouvez généralement ne devrait pas, il me semble. stackoverflow.com/a/11798227/1717300
OriginalL'auteur Sekai | 2013-12-16
Vous devez vous connecter pour publier un commentaire.
Obtenir le timestamp de la création de documents
Si vous utilisez de MongoDB par défaut ObjectIDs pour votre
_id
domaine, ceux-ci comprennent un horodatage de composants que vous pouvez utiliser pour en déduire la date de création du document. Le driver PHP comprend un MongoId::méthode gettimestamp() méthode qui peut être utilisée pour extraire le temps d'un ObjectID.Noter que l'ObjectID est normalement généré par le PHP conducteur (pas sur le serveur MongoDB), il est donc important d'avoir vos horloges synchronisées avec
ntpd
ou autres termes similaires si le timestamp de la précision est importante.La mise à jour de la date/horodateurs
Dans la prochaine MongoDB sortie de la version 2.6, une nouvelle
$currentDate
mise à jour modificateur a été ajouté, qui prend en charge le paramètre de serveur-côté des dates et les horodatages. Pour plus d'informations, voir: SERVEUR-10911 dans la MongoDB Jira bug tracker.Jusqu'à ce support côté serveur est disponible, votre meilleure approche pour l'ajout de la date/heure actuelle serait de définir dans le code de votre application à l'aide de
time()
ou une fonction équivalente.OriginalL'auteur Stennie
Sur la notice si vous insérez un BsonTimeStamp(0,0) dans l'un des 2 premiers champs le serveur va remplacer avec le timestamp actuel sur le serveur.
Documents avec _id 2 et 3 auront le timestamp actuel inséré dans le ts champ.
Également avec le serveur 2.5.3 (2,6), vous avez une nouvelle $currentDate mise à jour modifié (https://jira.mongodb.org/browse/SERVER-10911) qui peut être utilisé pour définir un champ à une date ou timestamp
OriginalL'auteur Sridhar Nanjundeswaran
Ont été à la recherche dans ce pour un long moment, et a trouvé cela semble fonctionner:
L'idée derrière l'étrange requête, c'est qu'elle renvoie toujours introuvable, de sorte qu'il crée toujours le document (
upsert: true
), mais aussi, de ne pas l'utiliser comme valeur pour le nouveau document inséré (par exemple, à l'aide de{ _id: 0 }
dans la requête serait en fait d'insérer un document avec un champ _id de valeur 0).Une approche similaire peut être prise à l'aide de vracs:
OriginalL'auteur Gian Franco Zabarino