1
我想让mongo生成_ids作为字符串。当向客户端发送第四条消息或在程序的其他部分使用时,它们更加可用。 现在我将它们转换为所有这些东西的字符串,然后将它们转换回运行查询。你可以让mongo默认生成_ids作为字符串吗?
任何想法或原因不?
我想让mongo生成_ids作为字符串。当向客户端发送第四条消息或在程序的其他部分使用时,它们更加可用。 现在我将它们转换为所有这些东西的字符串,然后将它们转换回运行查询。你可以让mongo默认生成_ids作为字符串吗?
任何想法或原因不?
不管你想要什么,你都可以设置_id。你甚至可以创建一个ObjectId,将其转换为字符串,然后保存该字符串而不是实际的ObjectId。你会在这里失去的主要是紧凑。你会失去了次要的东西是提取出的ObjectId值没有铸造它,例如日期的能力,等等。
举个例子:你将不得不改写它:
> var newId = new ObjectId();
> db.test.insert({_id:newId, x:"test"});
> db.test.find();
{ "_id" : ObjectId("4f94c2a11a6bbec3872cb315"), "x" : "test" }
> db.test.insert({_id:newId.str, x:"test"});
> db.test.find();
{ "_id" : ObjectId("4f94c2a11a6bbec3872cb315"), "x" : "test" }
{ "_id" : "4f94c2a11a6bbec3872cb315", "x" : "test" }
更新到一个ObjectId来做到这一点:
> var newId = new ObjectId();
> newId.getTimestamp();
ISODate("2012-04-23T03:22:56Z")
等等,ObjectId包含一个时间戳? – McGarnagle 2012-04-23 02:53:07
http://www.mongodb.org/display/DOCS/Object+IDs – 2012-04-23 03:20:26
添加了一个从ObjectId中获取时间戳的示例 – 2012-04-23 03:24:59