為什麼根據id刪除文件必須要用ObjectId這個方法呢?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
雖然你看到的好像是字串,但 document 的 _id 其實是 ObjectId 對象,所以必須用 ObjectId() 方法把字串轉成物件才能使用
ObjectId()
補充一些基礎知識。 mongo shell是建立在JavaScript的基础上的,不管是V8还是SpiderMonkey(两者都曾经作为mongo shell的引擎被使用过),都遵循EMCAScript并实现了它的一个子集。这就意味着shell里面的一切数据类型必须是ECMA标准中规定的数据类型。如果去查标准的话,JS的数据类型是非常有限的,基本上满足不了一个数据库的需要。所以有了BSON,支持那些JSON规范里没有的数据类型。ObjectID就是其中之一。所以剩下的问题就是如何在JS的语法下表达一个它没有的数据类型,结果就是你看到的ObjectID("...")。
JavaScript
V8
SpiderMonkey
BSON
JSON
ObjectID
ObjectID("...")
因為_id是全球唯一的。
雖然你看到的好像是字串,但 document 的 _id 其實是 ObjectId 對象,所以必須用
ObjectId()
方法把字串轉成物件才能使用補充一些基礎知識。
mongo shell是建立在
JavaScript
的基础上的,不管是V8
还是SpiderMonkey
(两者都曾经作为mongo shell的引擎被使用过),都遵循EMCAScript并实现了它的一个子集。这就意味着shell里面的一切数据类型必须是ECMA标准中规定的数据类型。如果去查标准的话,JS的数据类型是非常有限的,基本上满足不了一个数据库的需要。所以有了BSON
,支持那些JSON
规范里没有的数据类型。ObjectID
就是其中之一。所以剩下的问题就是如何在JS的语法下表达一个它没有的数据类型,结果就是你看到的ObjectID("...")
。因為_id是全球唯一的。