Хотя я использую оператор логического запроса $and
для объединения нескольких предложений запросов, оператор логических запросов $and
представляется IGNORE одним из предложений запросов.Может кто-то любезно объяснить, где я ошибаюсь в своем запросе?
Найдите ниже соответствующее содержание документа в теме recipientsDetails.find({}).fetch();
:
0
payersNumber: "+254700027685"
recipientNumber: "+254700007633"
1
payersNumber: "+254700007633"
recipientNumber: "+254700007633"
2
payersNumber: "+254700007633"
recipientNumber: "+254700007633"
Когда запрос ниже (объединенный$and
логический оператор запросов), похоже, пропущено предложение {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();
Из-за игнорируемого условия запроса приведенный выше запрос дает:
0
payersNumber: "+254700007633"
recipientNumber: "+254700007633"
1
payersNumber: "+254700007633"
recipientNumber: "+254700007633"
Вместо:
0
payersNumber: "+254700027685"
recipientNumber: "+254700007633"
1
payersNumber: "+254700007633"
recipientNumber: "+254700007633"
2
payersNumber: "+254700007633"
recipientNumber: "+254700007633"
Может кто-нибудь любезно объяснить, почему это происходит?и как исправить мой запрос?