假设我获得了如下的查找结果:
{ "_id" : ObjectId("5221517ad1b328371c000003"), "user_id" : ObjectId("5221517ad1b328371c000001"), "item_id" : ObjectId("5221517ad1b328371c000002"), "preference" : 22 }
ObjectId 意义不大。有没有办法用对象的属性替换 ObjectId?例如。对于 user_id -> 更改为用户名?
假设我获得了如下的查找结果:
{ "_id" : ObjectId("5221517ad1b328371c000003"), "user_id" : ObjectId("5221517ad1b328371c000001"), "item_id" : ObjectId("5221517ad1b328371c000002"), "preference" : 22 }
ObjectId 意义不大。有没有办法用对象的属性替换 ObjectId?例如。对于 user_id -> 更改为用户名?
实际上,您不必使用 ObjectId 作为 _id 字段的数据类型。您可以使用任何数据类型(例如字符串)显式使用 set _id:
> db.users.insert({_id: 'johndoe', age: 21})
> db.users.insert({_id: 'janedoe', age: 27})
> db.users.find({_id: 'janedoe'})
{ "_id" : "janedoe", "age" : 27 }
或整数
db.items.insert({_id: 1, name: 'someitem'})
> db.items.find()
{ "_id" : 1, "name" : "someitem" }
只要你能保证它具有独特的价值:
db.users.insert({_id: 'janedoe', 年龄: 26})
E11000 duplicate key error index: foo.users.$_id_ dup key: { : "janedoe" }
另一方面 ObjectID 是有意义的,可用于获取文档创建时间: http ://docs.mongodb.org/manual/reference/object-id/