Meteor 什么;逻辑查询运算符/s";我应该使用合并两个单独的查询吗?

Meteor 什么;逻辑查询运算符/s";我应该使用合并两个单独的查询吗?,meteor,mongodb-query,meteor-accounts,Meteor,Mongodb Query,Meteor Accounts,我使用什么逻辑查询运算符连接两个查询,生成属于登录用户的文档Meteor.userId()和在recipientNumber变量中包含登录用户的电话号码的所有文档 文档在recipientNumber变量中保留登录用户的电话号码,表明登录用户是资金的接收者 如需参考,请查看以下登录用户详细信息: 上面的代码正确地生成: Users _id is: "sxY3fsY9LmJYqFkiG" Users Number is: +254705086633 Users Name is: Sir.BT 0

我使用什么逻辑查询运算符连接两个查询,生成属于登录用户的文档
Meteor.userId()
recipientNumber
变量中包含登录用户的电话号码的所有文档

文档在
recipientNumber
变量中保留登录用户的电话号码,表明登录用户是资金的接收者

如需参考,请查看以下登录用户详细信息:

上面的代码正确地生成:

Users _id is: "sxY3fsY9LmJYqFkiG"
Users Number is: +254705086633
Users Name is: Sir.BT
0:
payersName: "Sir.BT"
payersUserId: "sxY3fsY9LmJYqFkiG"
recipientNumber: "+254705086633"
_id: "YbPFT9ecCA4FTgqsn"

1:
payersName: "Sir.BT"
payersUserId: "sxY3fsY9LmJYqFkiG"
recipientNumber: "+254705577633"
_id: "ZPWNsQ7TWSJcERSJv"
recipientsDetails.find({}).fetch()显示主题中集合的内容:

0:
payersName: "The LucidOreo"
payersUserId: "KDJFGkCRF3E5nY37e"
recipientNumber: "+254705086633"
_id: "MMyinrcrrYpz2haxq"    
1:
payersName: "Sir.BT"
payersUserId: "sxY3fsY9LmJYqFkiG"
recipientNumber: "+254705086633"
_id: "YbPFT9ecCA4FTgqsn"

2:
payersName: "Sir.BT"
payersUserId: "sxY3fsY9LmJYqFkiG"
recipientNumber: "+254705577633"
_id: "ZPWNsQ7TWSJcERSJv"
下面的查询过滤集合,根据用户Meteor.userId()为:sxY3fsY9LmJYqFkiG仅显示属于该用户的文档

var user = Meteor.userId(); 
recipientsDetails.find( {payersUserId: user} ).fetch();
结果如下:

0:
payersName: "Sir.BT"
payersUserId: "sxY3fsY9LmJYqFkiG"
recipientNumber: "+254705086633"
_id: "YbPFT9ecCA4FTgqsn"


1:
payersName: "Sir.BT"
payersUserId: "sxY3fsY9LmJYqFkiG"
recipientNumber: "+254705577633"
_id: "ZPWNsQ7TWSJcERSJv"
我想制定一个查询,显示两个事物的组合:

属于登录用户的所有文档(如下面的代码所示):

…以及包含登录用户电话号码的所有文档(也如下面的代码所示):

我应该在查询中使用什么逻辑查询运算符来生成此结果

我尝试过:

var user = Meteor.userId();

var userDetails = Meteor.users.findOne({_id: user}, { fields: { "profile.telephoneNumber": 1 } } ); 

var usersNumber = userDetails.profile.telephoneNumber; 

recipientsDetails.find( { $and: [{payersUserId: user},  {recipientNumber: usersNumber }  ] }  ).fetch();
不幸的是,这错误地导致:

Users _id is: "sxY3fsY9LmJYqFkiG"
Users Number is: +254705086633
Users Name is: Sir.BT
0:
payersName: "Sir.BT"
payersUserId: "sxY3fsY9LmJYqFkiG"
recipientNumber: "+254705086633"
_id: "YbPFT9ecCA4FTgqsn"

1:
payersName: "Sir.BT"
payersUserId: "sxY3fsY9LmJYqFkiG"
recipientNumber: "+254705577633"
_id: "ZPWNsQ7TWSJcERSJv"
…并省略了:

payersName: "The LucidOreo"
payersUserId: "KDJFGkCRF3E5nY37e"
recipientNumber: "+254705086633"
_id: "MMyinrcrrYpz2haxq"
…它清楚地携带了
接收者号码:“+254705086633”
登录用户的号码

澄清一下,预期收益率为:

0:
payersName: "The LucidOreo"
payersUserId: "KDJFGkCRF3E5nY37e"
recipientNumber: "+254705086633"
_id: "MMyinrcrrYpz2haxq"    
1:
payersName: "Sir.BT"
payersUserId: "sxY3fsY9LmJYqFkiG"
recipientNumber: "+254705086633"
_id: "YbPFT9ecCA4FTgqsn"

2:
payersName: "Sir.BT"
payersUserId: "sxY3fsY9LmJYqFkiG"
recipientNumber: "+254705577633"
_id: "ZPWNsQ7TWSJcERSJv"

有谁能向我解释一下为什么不考虑这个问题,以及如何更好地表述主题中的查询?

我认为如果您替换以下内容,它应该会起作用:

recipientsDetails.find( { $and: [{payersUserId: user},  {recipientNumber: usersNumber }  ] }  ).fetch();


如果我理解您的要求,我认为如果您将“$和”替换为“$或”。这将返回与PayerUserId或recipientNumber匹配的所有文档。
recipientsDetails.find( { $and: [{payersUserId: user},  {recipientNumber: usersNumber }  ] }  ).fetch();
recipientsDetails.find( { $or: [{payersUserId: user},  {recipientNumber: usersNumber }  ] }  ).fetch();