我想让mongo将它的_ids生成为字符串。当向客户端发回第四个或在程序的其他部分中使用它们时,它们更有用。 现在我将它们转换为所有这些东西的字符串,然后将它们转换回运行查询。
任何想法或理由都没有?
答案 0 :(得分:3)
您可以根据需要设置_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")