La conversione ObjectID (Mongodb) con la Stringa in JavaScript

Voglio convertire ObjectID (Mongodb) con la Stringa in JavaScript.
Quando ho un Oggetto a forma di MongoDB. è come un oggetto: la data, secondo, inc, macchina.
Io non riesco a convertire in stringa.

  • ""+objectId o objectId.toString() cui objectId è la variabile che credo farà quello che stai cercando.
  • ObjectID caricato da MongoDB è un Oggetto. se si utilizza il metodo toString() la funzione in Javascript, tornerà [Object, Object].
  • Strano, quelle funzioni che dovevano essere attuate, sono sicuro che è stato risolto
  • So che hanno segnato questo un duplicato di: stackoverflow.com/questions/8106517/mongodb-objectid-to-string ma stai seriamente male…
  • Penso che non è male la domanda.! Il tuo link è utilizzato per PHP. Ho bisogno di JavaScript.!
  • Infatti per fortuna la roba sotto è javascript 🙂
  • che cosa ha funzionato per voi? sono anche sempre [Object, Object]
  • Penso che ci sia una certa confusione nelle risposte se stai parlando di mongodb console, o il javascript driver per il nodo (entrambi sono JS, ma non sono identici in uso purtroppo)

InformationsquelleAutor vhlen | 2013-05-10

 

12 Replies
  1. 69

    Provare questo:

    objectId.str;

    Vedere il doc.

    • non capisco perché, questo non è lavoro per me, quando faccio una console.log, vedo l’oggetto come un oggetto sulla console
    • Questo non funziona per me. Tuttavia, objectId.toString() fatto.
    • Questo funziona ancora perfettamente bene.
  2. 19

    Qui è un esempio di conversione di un ObjectId in una stringa

    > 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

    Ha fatto provare varie altre funzioni come toHexString() senza successo.

  3. 8

    Acturally, si può provare questo:

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

    ObjectId oggetto + la Corda, la conversione di Stringa di un oggetto.

  4. 5

    Supponendo che l’OP vuole ottenere la stringa esadecimale valore dell’Oggetto, utilizzando Mongo 2.2 o superiore, il valueOf() metodo restituisce la rappresentazione dell’oggetto come una stringa esadecimale. Questo si ottiene anche con il str proprietà.

    Il link su anubiskong post dà tutti i dettagli, il pericolo è quello di usare una tecnica che ha cambiato da versioni precedenti ad esempio toString().

  5. 3

    questo funziona, Si dispone di mongodb oggetto: ObjectId(507f191e810c19729de860ea),
    per ottenere il valore di stringa di _id, tu dici ObjectId(507f191e810c19729de860ea).valueOf();

    • Si prega di migliorare la vostra risposta
    • la stringa viene avvolto all’interno di ObjectId, in modo da ottenere avvolto valore si utilizza la risposta che ti ho appena fornito @ Ivan Barayev
  6. 1

    È possibile utilizzare $toString aggregazione introdotto in mongodb versione 4.0 che converte il ObjectId per stringa

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

    Trovato questo molto divertente, ma ha funzionato per me:

        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)
        })
    • Ciao Hogan jerry, e benvenuti a StackOverflow! Si prega di utilizzare il codice di formattazione solo per le parti di codice, sarà più facile da leggere 🙂 buona giornata!
    • Grazie… era troppo eccitato
  8. -1

    Utilizzare questo semplice trucco, your-object.$id

    Sto diventando un array di mongo Id, qui è quello che ho fatto.

    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);
        });
    }
    
    ...

Lascia un commento