Quiero convertir ObjectID (Mongodb) para cadenas en JavaScript.
Cuando llego a un Objeto de forma MongoDB. es como un objeto tiene: marca de tiempo, en segundo lugar, inc, de la máquina.
Yo no puedo convertir a string.

  • ""+objectId o objectId.toString() cual objectId es la variable que yo creo que va a hacer lo que tu buscas.
  • ObjectID cargado de MongoDB es un Objeto. si utiliza el método toString() de la función en Javascript, devolverá [Objeto].
  • Extraño, esas funciones se suponía iban a ser implementado, estoy seguro de que fue corregido
  • Sé que marcaron este un duplicado de: stackoverflow.com/questions/8106517/mongodb-objectid-to-string, pero está muy mal…
  • Creo que no es mala pregunta.! Su enlace se utiliza para PHP. Lo necesito en JavaScript.!
  • De hecho, afortunadamente, las cosas de abajo es javascript 🙂
  • lo que funcionó para usted? también estoy recibiendo [Objeto]
  • Creo que hay cierta confusión en las respuestas como si usted está hablando acerca de la consola de mongodb, o el javascript controlador de nodo (ambos son de JS, pero no son idénticos en uso por desgracia)

InformationsquelleAutor vhlen | 2013-05-10

12 Comentarios

  1. 71

    Intente esto:

    objectId.str;

    Ver el doc.

    • yo no entiendo por qué, este no es trabajo para mí cuando hago una consola.registro, veo el id de objeto como un objeto en la consola
    • Esto no funciona para mí tampoco. Sin embargo, objectId.toString() hizo.
    • Esto todavía funciona perfectamente bien.
  2. 20

    Aquí es un ejemplo de trabajo de la conversión de la ObjectId en una cadena

    > 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

    Hizo probar varias otras funciones como toHexString() sin éxito.

  3. 8

    Acturally, puedes intentar esto:

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

    ObjectId objeto + Cadena va a convertir en objeto String.

  4. 5

    Suponiendo que el OP quiere obtener la cadena hexadecimal valor de la ObjectId, el uso de Mongo 2.2 o superior, el valueOf() método devuelve la representación del objeto como una cadena hexadecimal. Esto se consigue también con la str propiedad.

    El enlace en anubiskong del post da todos los detalles, aquí el peligro es el uso de una técnica que ha cambiado desde versiones anteriores por ejemplo,toString().

  5. 3

    esto funciona, Usted tiene mongodb objeto: ObjectId(507f191e810c19729de860ea),
    para obtener el valor de cadena de _id, usted acaba de decir ObjectId(507f191e810c19729de860ea).valueOf();

    • Por favor, mejorar su respuesta
    • la cadena se ajusta dentro de ObjectId, por lo que para obtener el envuelto de un valor de uso de la respuesta que proporcionó @ Ivan Barayev
  6. 1

    Puede utilizar $toString agregación introducido en mongodb versión 4.0 que convierte el ObjectId de la cadena de

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

    Encontrado esto realmente es gracioso, pero a mí me funcionó:

        db.my_collection.find({}).forEach((elm)=>{
    
        let value = new String(elm.USERid);//gets the string version of the ObjectId which in turn changes the datatype to a string.
    
        let result = value.split("(")[1].split(")")[0].replace(/^"(.*)"$/, '$1');//this removes the objectid completely and the quote 
        delete elm["USERid"]
        elm.USERid = result
        db.my_collection.save(elm)
        })
    • Hola Hogan jerry, y bienvenidos a StackOverflow! Por favor, utilice el código de formato sólo para el código de las partes, será más fácil de leer 🙂 que tengas un buen día!
    • Gracias… estaba demasiado excitado
  8. -1

    Utilizar este sencillo truco, your-object.$id

    Estoy recibiendo una matriz de mongo Ids, aquí es lo que yo hice.

    jquery:

    ...
    success: function (res) {
       console.log('without json res',res);
        //without json res {"success":true,"message":" Record updated.","content":[{"$id":"58f47254b06b24004338ffba"},{"$id":"58f47254b06b24004338ffbb"}],"dbResponse":"ok"}
    
    var obj = $.parseJSON(res);
    
    if(obj.content !==null){
        $.each(obj.content, function(i,v){
            console.log('Id==>', v.$id);
        });
    }
    
    ...

Dejar respuesta

Please enter your comment!
Please enter your name here