Узел.js Мангуст.JS строка в функцию ObjectId
есть ли функция, чтобы превратить строку в objectId в узле с помощью мангуста? Схема указывает, что что-то является ObjectId, но когда он сохраняется из строки, монго говорит мне, что это все еще просто строка. Этот параметр _id объекта, например, отображается как objectId("blah").
5 ответов:
вы можете сделать это вот так:
var mongoose = require('mongoose'); var id = mongoose.Types.ObjectId('4edd40c86762e0fb12000003');
вы можете сделать это так:
var mongoose = require('mongoose'); var _id = mongoose.mongo.BSONPure.ObjectID.fromHexString("4eb6e7e7e9b7f4194e000001");EDIT: новый стандарт имеет fromHexString, а не fromString
судя по комментариям, вы ищете:
mongoose.mongo.BSONPure.ObjectID.isValidили
mongoose.Types.ObjectId.isValid
Я не мог решить этот метод (по общему признанию, я не искал долго)
mongoose.mongo.BSONPure.ObjectID.fromHexStringЕсли ваша схема ожидает, что свойство будет иметь тип ObjectId, преобразование неявно, по крайней мере, это похоже на 4.7.8.
вы могли бы использовать что-то вроде этого, однако, что дает немного больше гибкости:
function toObjectId(ids) { if (ids.constructor === Array) { return ids.map(mongoose.Types.ObjectId); } return mongoose.Types.ObjectId(ids); }
Comments