He encontrado esta pregunta respondida para C # y Perl, pero no en la interfaz nativa. Pensé que esto funcionaría:
db.theColl.find( { _id: ObjectId("4ecbe7f9e8c1c9092c000027") } )
La consulta no devolvió resultados. Encontré el 4ecbe7f9e8c1c9092c000027 haciendo db.theColl.find()
y agarrando un ObjectId. Hay varios miles de objetos en esa colección.
He leído todas las páginas que pude encontrar en el sitio web mongodb.org y no lo encontré. ¿Es esto algo extraño? Me parece bastante normal.
Si está utilizando Node.js:
Editar: corregido a nuevo ObjectId (id), no nuevo ObjectID (id)
fuente
import { ObjectId } from "mongodb";
trabaja para el más elegante JS.Aún más fácil, especialmente con la finalización de pestañas:
Editar: también funciona con el
findOne
comando para una salida más bonita.fuente
db.test.find({'_id': ObjectId('4ecc05e55dd98a436ddcc47c')})
db.test.findOneAndDelete(ObjectId('57eujhs76e7hs877e868'))
comando eliminará un documento incluso si el ObjectId no coincide con la identificación especificada.db.test.find({'_id': ObjectId('4ecc05e55dd98a436ddcc47c')})
find()
, no sobrefindOneAndDelete()
.Has perdido insertar comillas dobles. La consulta exacta es
fuente
Si está trabajando en el shell mongo, consulte esto: Respuesta de Tyler Brock
Escribí la respuesta si estás usando mongodb usando node.js
No es necesario convertir la identificación en un
ObjectId
. Solo usa :Este método de recopilación convertirá automáticamente la identificación en ObjectId.
Por otra parte :
db.collection.findOne({"_id":'4ecbe7f9e8c1c9092c000027'})
No funciona como se esperaba. Has convertido manualmente la identificación aObjectId
.Eso se puede hacer así:
fuente
Acabo de tener este problema y estaba haciendo exactamente lo que estaba documentado y todavía no funcionaba.
Mire su mensaje de error y asegúrese de que no tiene ningún carácter especial copiado. Recibí el error
Cuando pasé al carácter 43, era solo el comienzo de mi ID de objeto, después de las comillas abiertas, exactamente como lo pegué. Puse mi cursor allí y presioné la tecla de retroceso. Nada parecía suceder cuando debería haber eliminado la comilla abierta. Presioné la tecla de retroceso nuevamente y eliminé la cita abierta, luego volví a poner la cita y ejecuté la consulta y funcionó, a pesar de verse exactamente igual.
Estaba haciendo desarrollo en WebMatrix y copié la identificación del objeto de la consola. Cada vez que copie desde la consola en WebMatrix, es probable que elija algunos caracteres invisibles que causarán errores.
fuente
Una vez que abrió la CLI de mongo, se conectó y autorizó en la base de datos correcta.
fuente
En las funciones de MongoDB Stitch se puede hacer usando BSON como a continuación:
Utilice el
ObjectId
ayudante en el paquete de utilidad BSON para este propósito, como en el siguiente ejemplo:fuente
Creo que es mejor que escribas algo como esto:
fuente
Para usar el método Objectid no necesita importarlo. Ya está en el objeto mongodb.
fuente
TypeError: db.ObjectId is not a function
ObjectId("SOMETHING")
Si está utilizando Node.js:
En ese req.user está el formato ObjectId.
fuente
Simplemente haz:
fuente
Mongo Shell
versión 3.2.7.