<legend id='RcJcl'><style id='RcJcl'><dir id='RcJcl'><q id='RcJcl'></q></dir></style></legend>
  • <small id='RcJcl'></small><noframes id='RcJcl'>

    • <bdo id='RcJcl'></bdo><ul id='RcJcl'></ul>
    <i id='RcJcl'><tr id='RcJcl'><dt id='RcJcl'><q id='RcJcl'><span id='RcJcl'><b id='RcJcl'><form id='RcJcl'><ins id='RcJcl'></ins><ul id='RcJcl'></ul><sub id='RcJcl'></sub></form><legend id='RcJcl'></legend><bdo id='RcJcl'><pre id='RcJcl'><center id='RcJcl'></center></pre></bdo></b><th id='RcJcl'></th></span></q></dt></tr></i><div id='RcJcl'><tfoot id='RcJcl'></tfoot><dl id='RcJcl'><fieldset id='RcJcl'></fieldset></dl></div>

        <tfoot id='RcJcl'></tfoot>

        我可以确定一个字符串是否是 MongoDB ObjectID 吗?

        时间:2024-04-20

          <small id='x3K0g'></small><noframes id='x3K0g'>

              • <legend id='x3K0g'><style id='x3K0g'><dir id='x3K0g'><q id='x3K0g'></q></dir></style></legend>

                  <tbody id='x3K0g'></tbody>
              • <i id='x3K0g'><tr id='x3K0g'><dt id='x3K0g'><q id='x3K0g'><span id='x3K0g'><b id='x3K0g'><form id='x3K0g'><ins id='x3K0g'></ins><ul id='x3K0g'></ul><sub id='x3K0g'></sub></form><legend id='x3K0g'></legend><bdo id='x3K0g'><pre id='x3K0g'><center id='x3K0g'></center></pre></bdo></b><th id='x3K0g'></th></span></q></dt></tr></i><div id='x3K0g'><tfoot id='x3K0g'></tfoot><dl id='x3K0g'><fieldset id='x3K0g'></fieldset></dl></div>
                  <bdo id='x3K0g'></bdo><ul id='x3K0g'></ul>
                • <tfoot id='x3K0g'></tfoot>
                  本文介绍了我可以确定一个字符串是否是 MongoDB ObjectID 吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在通过将字符串转换为 BSON 来进行 MongoDB 查找.在进行转换之前,我有没有办法确定我拥有的字符串是否是 Mongo 的有效 ObjectID?

                  I am doing MongoDB lookups by converting a string to BSON. Is there a way for me to determine if the string I have is a valid ObjectID for Mongo before doing the conversion?

                  这是我当前的 findByID 函数的咖啡脚本.它很好用,但如果我确定字符串不是 ID,我想通过不同的属性进行查找.

                  Here is the coffeescript for my current findByID function. It works great, but I'd like to lookup by a different attribute if I determine the string is not an ID.

                  db.collection "pages", (err, collection) ->
                    collection.findOne
                      _id: new BSON.ObjectID(id)
                    , (err, item) ->
                      if item
                        res.send item
                      else
                        res.send 404
                  

                  推荐答案

                  我发现 mongoose ObjectId 验证器可以验证有效的 objectId,但我发现在少数情况下无效的 id 被认为是有效的.(例如:任何 12 个字符的长字符串)

                  I found that the mongoose ObjectId validator works to validate valid objectIds but I found a few cases where invalid ids were considered valid. (eg: any 12 characters long string)

                  var ObjectId = require('mongoose').Types.ObjectId;
                  ObjectId.isValid('microsoft123'); //true
                  ObjectId.isValid('timtomtamted'); //true
                  ObjectId.isValid('551137c2f9e1fac808a5f572'); //true
                  

                  对我来说一直有效的是将字符串转换为 objectId,然后检查原始字符串是否与 objectId 的字符串值匹配.

                  What has been working for me is casting a string to an objectId and then checking that the original string matches the string value of the objectId.

                  new ObjectId('timtamtomted'); //616273656e6365576f726b73
                  new ObjectId('537eed02ed345b2e039652d2') //537eed02ed345b2e039652d2
                  

                  之所以有效,是因为有效 id 在转换为 ObjectId 时不会更改,但如果字符串为 false 有效,则会在转换为 objectId 时发生更改.

                  This work because valid ids do not change when casted to an ObjectId but a string that gets a false valid will change when casted to an objectId.

                  这篇关于我可以确定一个字符串是否是 MongoDB ObjectID 吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:CoffeeScript 模块的模式 下一篇:环境检测:node.js 或浏览器

                  相关文章

                    <bdo id='TA2CK'></bdo><ul id='TA2CK'></ul>
                  <legend id='TA2CK'><style id='TA2CK'><dir id='TA2CK'><q id='TA2CK'></q></dir></style></legend>
                • <i id='TA2CK'><tr id='TA2CK'><dt id='TA2CK'><q id='TA2CK'><span id='TA2CK'><b id='TA2CK'><form id='TA2CK'><ins id='TA2CK'></ins><ul id='TA2CK'></ul><sub id='TA2CK'></sub></form><legend id='TA2CK'></legend><bdo id='TA2CK'><pre id='TA2CK'><center id='TA2CK'></center></pre></bdo></b><th id='TA2CK'></th></span></q></dt></tr></i><div id='TA2CK'><tfoot id='TA2CK'></tfoot><dl id='TA2CK'><fieldset id='TA2CK'></fieldset></dl></div>

                  <tfoot id='TA2CK'></tfoot>

                  <small id='TA2CK'></small><noframes id='TA2CK'>