¿Existe una función para convertir una cadena en un Id de objeto en nodo utilizando mangosta? El esquema especifica que algo es un ObjectId, pero cuando se guarda de una cadena, mongo me dice que todavía es solo una cadena. El _id del objeto, por ejemplo, se visualiza como objectId("blah")
.Node.js Cadena de Mongoose.js a la función ObjectId
Respuesta
Puede hacerlo de esta manera:
var mongoose = require('mongoose');
var id = mongoose.Types.ObjectId('4edd40c86762e0fb12000003');
Puede hacerlo de esta manera:
var mongoose = require('mongoose');
var _id = mongoose.mongo.BSONPure.ObjectID.fromHexString("4eb6e7e7e9b7f4194e000001");
EDIT: Nueva norma ha fromHexString en lugar de fromstring
Bueno, aún más "nuevo" estándar es parece estar mongoose.mongo.BSONPure.ObjectID.createFromHexString() (a partir de la mangosta 3.9.7) – Evereq
Para aquellos que están intentando hacer esto, esta es una respuesta mucho mejor que la respuesta seleccionada, ya que no transformará la identificación si ya está usando una id de mongo. – ed209
Esto ya no funciona, use la respuesta aceptada en su lugar – paper1111
A juzgar por los comentarios, que está buscando:
mongoose.mongo.BSONPure.ObjectID.isValid
O
mongoose.Types.ObjectId.isValid
var mongoose = require('mongoose');
var _id = mongoose.mongo.ObjectId("4eb6e7e7e9b7f4194e000001");
Esto es exactamente lo mismo que la respuesta aceptada –
¿Podría comentar sobre la diferencia entre 'mongoose.Types.ObjectId' y' mongoose.mongo.ObjectId'? Las propiedades del objeto de la mangosta son diferentes, pero pueden estar haciendo referencia al mismo método debajo. Comente sobre los métodos subyacentes en 'Types' vs' mongo'. – steampowered
no podía resolver este método (la verdad es que no me busco larga)
mongoose.mongo.BSONPure.ObjectID.fromHexString
Si el esquema espera que la propiedad sea del tipo OBJECTID, la la conversión es implícita, al menos este parece ser el caso en 4.7.8.
Se podría utilizar algo como esto, sin embargo, lo que da un poco más a la flexión:
function toObjectId(ids) {
if (ids.constructor === Array) {
return ids.map(mongoose.Types.ObjectId);
}
return mongoose.Types.ObjectId(ids);
}
- 1. ID de cadena a BSON :: OBJECTID
- 2. Mongoose.js crea múltiples conexiones a MongoDB de una llamada connect()
- 3. no puede obtener Mongoose.js Subdocumento Array para poblar
- 4. Asignación de Mongodb ObjectId hacia y desde la cadena automáticamente
- 5. Node.js a la comunicación Node.js
- 6. Mongoose.js: eliminar colección o DB
- 7. Convertir .NET Guid a MongoDB ObjectID
- 8. cómo obtener el objectID de la url?
- 9. Mongoose.js se traga errores en guardar devolución de llamada?
- 10. glsl fragmentshader render objectID
- 11. Node.js "requieren" la función y los parámetros
- 12. Cómo convertir cadenas en ObjectId
- 13. MongoDB almacenando matrices de ObjectId
- 14. Invocando la función en PowerShell a través de la cadena
- 15. javascript: pasar un objeto como argumento a una función onclick dentro de la cadena
- 16. Node.js mongoose performance
- 17. Node.JS función de exportación sin envoltorio objeto
- 18. Cómo llamar a la función anonymus desde la cadena
- 19. función fread no poner fin a la cadena de \ 0
- 20. C: Volviendo cadena a partir de la función
- 21. Cómo obtener el valor de la cadena XML con Node.js
- 22. Node.js url.parse result Volver a la serie
- 23. http.get y cadena de consulta en Node.js
- 24. Evaluar la función matemática de la cadena
- 25. ImportError: Sin módulo denominado OBJECTID
- 26. Llamar a la función anidada cuando se pasa el nombre de la función como una cadena
- 27. Cómo establecer ObjectId como un tipo de datos en mongoose
- 28. Node.JS función y el paso de argumentos de la horquilla a hijo-proceso
- 29. Usar una cadena para llamar a la función en Python
- 30. Convertir cadena a matriz sin usar la función Dividir
Sí, eso es un poco más limpio en este caso. Solo puede necesitar usar el mongo.BSONPure si lo hace fromTime() – talentedmrjones
¿Esto arroja un error si es una cadena no válida? Buscando la mejor forma de hacer la validación de entrada en una API REST para los campos de id mongo. – Zambonilli
De hecho, arroja un error. – Zambonilli