Node.js findOne结果中的findOne

Node.js findOne结果中的findOne,node.js,mongoose,Node.js,Mongoose,我一直在寻找这个问题,但似乎我找不到确切的词来寻找,这就是为什么我找不到答案。无论如何,情况是这样的: 我有一个用户列表,每个用户都有一个朋友列表。(用户可以有相同的朋友)。我想通过Id首先查找用户,然后查找他朋友列表中的朋友 User : { firstUser, secondUser } firstUser: { name, friendList } secondUser: {name, friendList } friendList (of firstUser) : {

我一直在寻找这个问题,但似乎我找不到确切的词来寻找,这就是为什么我找不到答案。无论如何,情况是这样的:

我有一个用户列表,每个用户都有一个朋友列表。(用户可以有相同的朋友)。我想通过Id首先查找用户,然后查找他朋友列表中的朋友

User :
 { firstUser, secondUser }

 firstUser: { name, friendList }
 secondUser: {name, friendList }

 friendList (of firstUser) : {
      { name: Jhon Doe, age: 5 }
      { name: mickey, age: 23 }
 }

 friendList (of secondUser) : {
      { name: Jhon Doe, age: 5 }
      { name: jane, age: 23 }
 }
正如您所看到的,我不能使用$elemMatch和$in,因为这两个用户可以有相同的朋友

 User.findOne( {id: req.query._id }, function(err, user){
             //what to do here?
   });

假设您有朋友的id,您只需调用
var friend=user.friendList.id(friendId)

User.findOne({id:req.query.\u id},函数(err,User){var friend=User.friendList.id(friendId);return friend;//这是否正确?});否-
返回好友不会做任何事情。您必须在回调中使用
friend
对象。。。调用另一个函数或执行任何需要的操作,但这是从外部资源异步加载代码,从回调返回对您没有任何帮助,这是可行的,但我需要另一种方法来查找子文档而不使用.id,因为我是通过我创建的“唯一的\u id”搜索friendlist的,而不是mongo创建的“唯一的\u id”