假设我获得了如下结果:
{ "_id" : ObjectId("5221517ad1b328371c000003"), "user_id" : ObjectId("5221517ad1b328371c000001"), "item_id" : ObjectId("5221517ad1b328371c000002"), "preference" : 22 }
ObjectId没有多大意义。有没有办法用对象的属性替换ObjectId?例如。 for user_id - >更改为用户名?
答案 0 :(得分:2)
实际上,您不必将ObjectId用作_id字段的数据类型。您可以使用任何数据类型显式使用set _id,例如string:
> 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/