虽然我用的是
$and
逻辑查询运算符,用于联接多个查询子句,
美元和
逻辑查询运算符似乎
忽略
查询子句之一。有人能解释一下我的问题在哪里吗?
在下面的主题中查找文档的相关内容
recipientsDetails.find({}).fetch();
:
0
payersNumber: "+254700027685"
recipientNumber: "+254700007633"
1
payersNumber: "+254700007633"
recipientNumber: "+254700007633"
2
payersNumber: "+254700007633"
recipientNumber: "+254700007633"
当下面的查询(由
美元和
逻辑查询运算符)运行时,它似乎忽略了
{payersNumber: { $ne: usersPhoneNumber } }
条款。
var userIdCode = Meteor.userId();
var phoneNumber = Meteor.users.findOne({_id: userIdCode }, { fields: { "profile.telephoneNumber": 1 } } );
var usersPhoneNumber = phoneNumber.profile.telephoneNumber;
recipientsDetails.find( { $and: [ { payersNumber: usersPhoneNumber },
{ recipientNumber: usersPhoneNumber },
{ payersNumber: { $ne: usersPhoneNumber } }
] }).fetch();
由于忽略了query子句,上面的查询将生成:
0
payersNumber: "+254700007633"
recipientNumber: "+254700007633"
1
payersNumber: "+254700007633"
recipientNumber: "+254700007633"
而不是:
零
付款人编号:“+25470027685”
收件人编号:“+254700007633”
一
付款人编号:“+254700007633”
收件人编号:“+254700007633”
二
付款人编号:“+254700007633”
收件人编号:“+254700007633”
有人能解释一下为什么会发生这种情况,以及如何纠正我的疑问吗?