Я могу определить, является ли строка MongoDB ObjectID?

Я делаю поиски MongoDB путем преобразования строки в BSON. Существует ли способ для меня определить, является ли строкой, которую я имею, допустимый ObjectID за монго прежде, чем сделать преобразование?

Вот coffeescript для моей текущей функции findByID. Это работает отлично, но я хотел бы к поиску другим атрибутом, если я решаю, что строка не является идентификатором.

db.collection "pages", (err, collection) ->
  collection.findOne
    _id: new BSON.ObjectID(id)
  , (err, item) ->
    if item
      res.send item
    else
      res.send 404
61
задан 13 December 2012 в 04:36

1 ответ

Самый легкий путь, в основном переносят Ваш метод ObjectId в попытку и ловят сервис. Затем Вы используете этот сервис для обработки идентификатора Objecet, вместо того, чтобы использовать метод непосредственно:

var ObjectId = REQUIRE OR IMPORT ...

// service
function oid(str) {
 try {   
   return ObjectId(str);
 } catch(err) {
   return false;
 }
}

// usage
if (oid(USER_INPUT)) {
  // continue
} else {
  // throw error
}

можно также отправить пустые или пустые опоры для получения нового сгенерированного идентификатора.

0
ответ дан 31 October 2019 в 14:59

Другие вопросы по тегам:

Похожие вопросы: