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.
非常感谢,
抢
它没有任何意义.
所述的ObjectID是一个十六进制串,其可以包括字符0123456789abcdef.这意味着任何可以用这6个字母写的字,如"坏","牛肉","死","聋","宝贝"或"咖啡馆"都有一定的概率出现在它们中(对于确切的概率,请咨询我们的朋友).
在您的情况下,字符串"bad"出现在三个字节中,即机器ID("74bad7"),因此由同一台机器创建的所有ObjectID将包含此6位数字符串.如何生成计算机ID取决于驱动程序,但通常使用主机名或MAC地址的MD5哈希的前6位数创建.因此,当你不再需要任何"坏"的objectID时,试着改变它们并强制它们直到得到你喜欢的那个;)
您更新文档的问题必须有其他原因,但您提供的详细信息不包括提示问题可能是什么.
| 归档时间: |
|
| 查看次数: |
573 次 |
| 最近记录: |