Mongodb生成的UID包含单词"bad"

Rob*_*ick -2 mongoose mongodb node.js

有没有人知道MongoDB(或者也许是Mongoose保存)生成的"_id"意味着它在中间包含"坏"字样.

eg: 521b633274bad76823000002
Run Code Online (Sandbox Code Playgroud)

我在网上或这里找不到答案.

这发生在"保存"上,但只在我想"更新"文档时才发现.它不允许更新.

 db.collection.update(...
Run Code Online (Sandbox Code Playgroud)

尝试"更新"对象的回调始终为null,文档未更新.

切换我的数据库解决了这个问题,所以我相信这不在代码中(并且代码非常简单)

在Node上同时使用mongojs和mongoose.

非常感谢,

Phi*_*ipp 5

它没有任何意义.

所述的ObjectID是一个十六进制串,其可以包括字符0123456789abcdef.这意味着任何可以用这6个字母写的字,如"坏","牛肉","死","聋","宝贝"或"咖啡馆"都有一定的概率出现在它们中(对于确切的概率,请咨询我们的朋友).

在您的情况下,字符串"bad"出现在三个字节中,即机器ID("74bad7"),因此由同一台机器创建的所有ObjectID将包含此6位数字符串.如何生成计算机ID取决于驱动程序,但通常使用主机名或MAC地址的MD5哈希的前6位数创建.因此,当你不再需要任何"坏"的objectID时,试着改变它们并强制它们直到得到你喜欢的那个;)

您更新文档的问题必须有其他原因,但您提供的详细信息不包括提示问题可能是什么.