web-dev-qa-db-fra.com

Convertit ObjectID (Mongodb) en chaîne en JavaScript

Je veux convertir ObjectID (Mongodb) en String en JavaScript . Lorsque j'obtiens un formulaire Object MongoDB. c'est comme si un objet avait: timestamp, second, inc, machine ..__ Je ne peux pas convertir en chaîne.

44
vhlen

Essaye ça: 

objectId.str;

Voir le doc .

59
anubiskong

Voici un exemple pratique de conversion de ObjectId dans une chaîne

> a=db.dfgfdgdfg.findOne()
{ "_id" : ObjectId("518cbb1389da79d3a25453f9"), "d" : 1 }
> a['_id']
ObjectId("518cbb1389da79d3a25453f9")
> a['_id'].toString // This line shows you what the prototype does
function () {
    return "ObjectId(" + tojson(this.str) + ")";
}
> a['_id'].str // Access the property directly
518cbb1389da79d3a25453f9
> a['_id'].toString()
ObjectId("518cbb1389da79d3a25453f9") // Shows the object syntax in string form
> ""+a['_id'] 
518cbb1389da79d3a25453f9 // Gives the hex string

A essayé diverses autres fonctions comme toHexString() sans succès.

18
Sammaye

Actuellement, vous pouvez essayer ceci: 

> a['_id']
ObjectId("518cbb1389da79d3a25453f9")
> a['_id'] + ''
"518cbb1389da79d3a25453f9"

ObjectId object + String sera converti en objet String.

8
user1438797

Si quelqu'un utilise dans Meteorjs, peut essayer:

Sur le serveur: ObjectId(507f191e810c19729de860ea)._str.

Dans le modèle: {{ collectionItem._id._str }}.

En supposant que l'OP souhaite obtenir la valeur de chaîne hexadécimale de l'ObjectId, en utilisant Mongo 2.2 ou une version ultérieure, la méthode valueOf() renvoie la représentation de l'objet sous forme de chaîne hexadécimale. Ceci est également réalisé avec la propriété str.

Le lien sur le post d’anubiskong donne tous les détails, le danger ici est d’utiliser une technique qui a changé par rapport aux versions antérieures, par exemple. toString().

5
William Myers

cela fonctionne, vous avez l'objet mongodb: ObjectId (507f191e810c19729de860ea), pour obtenir la valeur de chaîne de _id, vous dites simplement ObjectId (507f191e810c19729de860ea) .valueOf ();

2
ndoty

Utilisez toString: var stringId = objectId.toString()

Fonctionne avec le dernier pilote Node MongoDB Native (v3.0 +):

http://mongodb.github.io/node-mongodb-native/3.0/

2
Vidar

Il suffit d'utiliser ceci: _id.$oid

Et vous obtenez la chaîne ObjectId. Cela vient avec l'objet.

0
Sergio

Vous pouvez utiliser $toString agrégation introduit dans la version de mongodb 4.0 qui convertit l'ObjectId en chaîne

db.collection.aggregate([
  { "$project": {
    "_id": { "$toString": "$your_objectId_field" }
  }}
])
0
Anthony Winzlet