На результаты моего запроса MongoDB влияют значения сеансов, например, recipientsDetails.find({ paymentStatus:{$in: Session.get('pendingFilter')} }).fetch();
Эти значения pendingFilter Sessions установлены для включения отфильтрованных результатов, при этом требуются только определенные значения из коллекции, например. Только отображение: Успешно оплаченные транзакции , неудачные транзакции или сторнированные транзакции и т. Д.
По умолчанию значение pendingFilter
Session пустое, поэтому, когда моя страница загружается впервые, отображается вся коллекция (нефильтрованная), однако после того, как я использовал различные отфильтрованные функции и теперь хотел бы вернуть значение по умолчанию состояние, где отображается вся коллекция нефильтрованной, кажется, что FAIL .
Может кто-нибудь помочь объяснить, почему это не работает, и предложить решение?
Ниже приведен мой фактический запрос MongoDB, за которым следует выход:
var userIdCode = Meteor.userId();
var phoneNumber = Meteor.users.findOne({_id: userIdCode }, { fields: { "profile.telephoneNumber": 1 } }, {sort: {paymentDate: -1 }} );
var usersPhoneNumber = phoneNumber.profile.telephoneNumber;
recipientsDetails.find({
paymentStatus:{
$in: Session.get('pendingFilter')
},
recipientPaymentStatus: {
$in: Session.get('pendingFilter')
}
},
{ $or: [ { payersNumber: usersPhoneNumber },
{ recipientNumber: usersPhoneNumber } ] },
{sort: {paymentDate: 'desc' }}).fetch();
Запрос выше приводит к:
0:
payersName: "Sa Acea"
payersNumber: "+254705087633"
paymentDate: "2019-03-28 22:38:30"
paymentStatus: "Success"
recipientPaymentStatus: "Reversed"
recipientNumber: "+254705087633"
_id: "D3gY4BoR2tvxdK4xv"
1:
payersName: "Paul Acea"
payersNumber: "+254705557688"
paymentDate: "2019-03-28 22:38:30"
paymentStatus: "Pending"
recipientPaymentStatus: "Success"
recipientNumber: "+254705087633"
_id: "ajCjYbLaDP7x4iAFK"
2:
payersName: "Simon Bolton"
payersNumber: "+25470887633"
paymentDate: "2019-03-28 22:38:30"
paymentStatus: "Success"
recipientPaymentStatus: "Complete"
recipientNumber: "+254705087633"
_id: "K4d6wDrjRRdSyCkhW"
У меня есть три фильтра функции, которые при нажатии показывают только указанные значения коллекции. Как видно ниже:
'click .reversedSubMenu' (event, instance) {
event.preventDefault();
Session.set('pendingFilter', [ "Success", "Reversed" ]);
},
Это правильно дает:
0:
payersName: "Sabiti Asea"
payersNumber: "+254705087633"
paymentDate: "2019-03-28 22:38:30"
paymentStatus: "Success"
recipientPaymentStatus: "Reversed"
_id: "D3gY4BoR2tvxdK4xv"
.
'click .inPescrowSubMenu' (event, instance) {
event.preventDefault();
Session.set('pendingFilter', [ "Success", "Pending" ]);
},
Это правильно дает:
0:
payersName: "Paul Asea"
payersNumber: "+254705557688"
paymentDate: "2019-03-28 22:38:30"
paymentStatus: "Pending"
recipientPaymentStatus: "Success"
_id: "ajCjYbLaDP7x4iAFK"
.
'click .paidSubMenu' (event, instance) {
event.preventDefault();
Session.set('pendingFilter', [ "Success", "Complete" ]);
},
Это также правильно дает:
0:
payersName: "Simon Bolton"
payersNumber: "+25470887633"
paymentDate: "2019-03-28 22:38:30"
paymentStatus: "Success"
recipientPaymentStatus: "Complete"
_id: "K4d6wDrjRRdSyCkhW"
Проблема заключается в том, что приведенная ниже функция .reset
не функционирует должным образом. При нажатии сеанс pendingFilter
сбрасывается в ноль, но я не могу просмотреть всю коллекцию по желанию.
'click .reset' (event, instance) {
event.preventDefault();
Session.set('pendingFilter', []);
var testing = Session.get('pendingFilter');
console.log("Testing PendingFilter: " +testing )
},
Выше приведено в консоли браузера: Testing PendingFilter:
Желаемый результат после нажатия .reset
- это чтобы команда показала весь / нефильтрованный сбор, как показано ниже:
0:
payersName: "Sabiti Asea"
payersNumber: "+254705087633"
paymentDate: "2019-03-28 22:38:30"
paymentStatus: "Success"
recipientPaymentStatus: "Reversed"
recipientNumber: "+254705087633"
_id: "D3gY4BoR2tvxdK4xv"
1:
payersName: "Paul Asea"
payersNumber: "+254705557688"
paymentDate: "2019-03-28 22:38:30"
paymentStatus: "Pending"
recipientPaymentStatus: "Success"
recipientNumber: "+254705087633"
_id: "ajCjYbLaDP7x4iAFK"
2:
payersName: "Simon Bolton"
payersNumber: "+25470887633"
paymentDate: "2019-03-28 22:38:30"
paymentStatus: "Success"
recipientPaymentStatus: "Complete"
recipientNumber: "+254705087633"
_id: "K4d6wDrjRRdSyCkhW"
Как мне сформулировать функцию сброса / или запрос для включения желаемого результата?
Заранее спасибо