MongoDB新手在这里。我对引用有第一种方法,我的主要疑问是我是否针对我的情况使用了适当的策略(手动引用)。
在同一个数据库中处理 2 个集合(用户、消息),让我们以存储在用户集合中的文档为例:
array (
'_id' => new MongoId("5231817277758e660c7202c4"),
'uname' => 'pluto',
'pwd' => new MongoInt32(1234567),
'email' => 'pluto1@gmail.com',
'phone_home' => new MongoInt64(23409238),
'phone_work' => new MongoInt64(54389724),
'phone_mobile' => new MongoInt64(9823422),
'visible' => new MongoInt32(1),
)
以及存储在消息集合中的文档示例(从其他用户发送到“pluto”上方的用户):
array (
'_id' => new MongoId("524358102660b2c70b8b4567"),
'from_uid' => '5231817277758e660c7202d7',
'to_uid' => '5231817277758e660c7202c4',
'object' => 'mongo manual Ref',
'content' => 'is that the correct approach?',
'datetime' => '2013-09-25 23:39:28',
)
登录的用户('pluto')可以看到他从其他用户收到的所有消息,但是,我不想打印'from_uid'值,我想用发件人的用户名替换它。
我的主要疑问是手动引用是否适合这种情况,因为使用这种技术(如果我没有错过理解所有内容),打印消息列表将涉及:
- 用于打印消息列表的“查询”
- 另一个“查询”,用于从其他集合中检索每条消息的用户名。此外,如果用户收到 1000 条消息,这种方法将不得不运行 1001 查询?
我的第二个疑问是是否有办法直接合并或替换两个游标的结果