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();