Mongodb Mongo find-查找时将ObjectId替换为object的属性

Mongodb Mongo find-查找时将ObjectId替换为object的属性,mongodb,Mongodb,假设我得到一个查找结果,如下所示: { "_id" : ObjectId("5221517ad1b328371c000003"), "user_id" : ObjectId("5221517ad1b328371c000001"), "item_id" : ObjectId("5221517ad1b328371c000002"), "preference" : 22 } ObjectId不是很有意义。有没有办法用对象的属性替换ObjectId?例如,对于用户id->更改为用户名?实际上,您不必使

假设我得到一个查找结果,如下所示:

{ "_id" : ObjectId("5221517ad1b328371c000003"), "user_id" : ObjectId("5221517ad1b328371c000001"), "item_id" : ObjectId("5221517ad1b328371c000002"), "preference" : 22 }

ObjectId不是很有意义。有没有办法用对象的属性替换ObjectId?例如,对于用户id->更改为用户名?

实际上,您不必使用ObjectId作为\u 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 }
或整数

insert({u id:1,名称:'someitem'})

只要您能保证它具有独特的价值:

insert({u id:'janedoe',年龄:26})

另一方面,ObjectID很有意义,可用于获取文档创建时间:

此结果看起来像是以关系方式构建的,这意味着用户id正在存储可以在另一个集合中找到的objectid?我的假设正确吗?是的,你的假设正确correct@Karan您应该再次阅读有关人们为什么使用面向文档的数据库的内容。如果您继续使用关系方式来设计如何在数据库中存储数据,您将不会得到任何好处。@outcoldman-但是,我理解,我的架构结构似乎有点关系化的原因是因为我使用的库需要这个()
> db.items.find()

{ "_id" : 1, "name" : "someitem" }
E11000 duplicate key error index: foo.users.$_id_  dup key: { : "janedoe" }