如何在mongodb中加入查询? [英] How to join query in mongodb?

查看:111
本文介绍了如何在mongodb中加入查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样的用户文档集合:

I have user document collection like this:

User {
   id:"001"
   name:"John",
   age:30,
   friends:["userId1","userId2","userId3"....]
}

一个用户有很多朋友,我在SQL中有以下查询:

A user has many friends, I have the following query in SQL:

select * from user where in (select friends from user where id=?) order by age

我想在MongoDB中有类似的东西.

I would like to have something similar in MongoDB.

推荐答案

此答案仅适用于v3.2之前的MongoDb版本.

仅凭一个查询,您就无法做自己想做的事情.您将必须首先检索朋友用户ID的列表,然后将这些ID传递给第二个查询以检索文档并按年龄对它们进行排序.

You can't do what you want in just one query. You would have to first retrieve the list of friend user ids, then pass those ids to the second query to retrieve the documents and sort them by age.

var user = db.user.findOne({"id" : "001"}, {"friends": 1})
db.user.find( {"id" : {$in : user.friends }}).sort("age" : 1);

这篇关于如何在mongodb中加入查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆