Estoy tratando de seleccionar un documento de identificación

He probado:

collection.update({ "_id": { "$oid": + theidID } }

collection.update({ "_id": theidID }

collection.update({ "_id.$oid": theidID }}

También trató de:

collection.update({ _id: new ObjectID(theidID ) }

Este me da un error 500…

var mongo = require('mongodb')
var BSON = mongo.BSONPure;
var o_id = new BSON.ObjectID(theidID );

collection.update({ _id: o_id }

Ninguno de estos trabajos. Cómo seleccionar _id?

  • collection.find({"_id": ObjectId(theidID)}) debería funcionar.
  • ¿Te funciona?
  • Me di por vencido y terminó la asignación de un ID personalizado para cada doc.
  • Necesito esto para un selecto/buscar (no una actualización, incluso). Suerte?
  • No funcionará si usted no tiene una referencia al derecho a la serializador.
InformationsquelleAutor Mark | 2011-02-04

7 Comentarios

  1. 122
    var mongo = require('mongodb');
    var o_id = new mongo.ObjectID(theidID);
    collection.update({'_id': o_id});
    • Año 2016 – todavía funciona bien. Si no maby había native_parser:false – verificación Raphael respuesta a continuación
    • Esto funciona. Asegúrese de que la está llamando ObjectID() en require('mongodb') y no en require('mongodb').MongoClient
    • Por esta manera tengo mongoClient.ObjectID is not a constructor de error.
  2. 66

    Este el enfoque que trabajó para mí.

    var ObjectId = require('mongodb').ObjectID;
    
    var get_by_id = function(id, callback) {
      console.log("find by: "+ id);
      get_collection(function(collection) {
        collection.findOne({"_id": new ObjectId(id)}, function(err, doc) {
           callback(doc);
        });
      });
    }
  3. 17

    ahora puedes usar este:

    var ObjectID = require('mongodb').ObjectID;
    var o_id = new ObjectID("yourObjectIdString");
    ....
    collection.update({'_id': o_id});

    Se puede ver la documentación aquí

  4. 11

    Con native_parser:false:

    var BSON = require('mongodb').BSONPure;
    var o_id = BSON.ObjectID.createFromHexString(theidID);

    Con native_parser:true:

    var BSON = require('mongodb').BSONNative;
    var o_id = BSON.ObjectID.createFromHexString(theidID);
  5. 5

    Acabo de utilizar este código en Node.js aplicación en el controlador de archivo y funciona:

    var ObjectId = require('mongodb').ObjectId;
    ...
    User.findOne({_id:ObjectId("5abf2eaa1068113f1e")})
    .exec(function(err,data){
       //do stuff
    })

    no se olvide de instalar «mongodb» antes, y si usted está utilizando el cifrado de las contraseñas con bcrypt con «presave», asegúrese de que usted no va a cifrar la contraseña después de cada modificación del registro en la DB.

  6. 0

    La respuesta depende del tipo de variable que se pasa como en el id. Me sacó un identificador de objeto haciendo una consulta y almacenamiento de mi account_id como el ._id atributo. Usando este método, usted simplemente consulta mediante el mongo de identificación.

    });

  7. 0

    Esto es lo que ha funcionado para mí.
    Usando mongoDB

    const mongoDB = require('mongodb')

    A continuación, en la parte inferior donde estoy haciendo mi expreso conseguir llamar.

Dejar respuesta

Please enter your comment!
Please enter your name here