质询
db.user.save({'user_id':1603,'email':'test@test.com','rel':[{'fid':1604,'s':0},{'fid':1605,'s':1},{'fid':1606,'s':2}]})
创建一个USER
的集合,向她写入一个拥有user_id
、email
和一个子集合REL的用户。
在子集合中有一对REL FID(朋友ID)和S(友谊状态)。
例如,
0-发送好友请求
1-朋友
2-拒绝友谊
等等。
换句话说,子集合REL用户ID 1603是关于他如何友好、与谁友好以及友好状态的信息。
问题。有一个ID为1606的用户,我们需要找出它正在处理ID为1603的用户。
为此,首先查找ID为1603的用户,并获取REL
db.user.findOne({'user_id': 1603}, {'rel': true})
在REL的子集合上搜索FID c值1606,找到ID为1603的用户。
如果找到这样的FID,则返回到1606和1603中的S.I.e.用户友好状态。
这就是问题发生的地方。如果podskazhesh将primnogo感激。
1条答案
按热度按时间icnyk63a1#
好消息是可能有一个更好的查询。
如果这行得通,那么1606是1603的朋友。
边注
MongoDB不支持“子集合”的概念。
database
包含collections
,collections
包含documents
。这里没有“子集合”的概念。在你的例子中,你有一个
document
,它包含一个array
类型的value
,但是MongoDB没有任何类型的连接语法,所以它只是一个“引用数组”,而不是一个真正的“子集合”,这里没有引用完整性。