如何在我的查询中重置我的会话以再次显示整个集合?
How do I reset my Session in my query in order to show the entire collection again?
我的 MongoDB 查询结果受会话值的影响,例如 recipientsDetails.find({ paymentStatus:{$in: Session.get('pendingFilter')} }).fetch();
这些 pendingFilter Sessions 值被设置为启用过滤结果,从而仅需要集合中的特定值仅显示:成功支付的交易、失败的交易或撤销的交易等
默认情况下,pendingFilter
会话值是空的,所以当我的页面第一次加载时,整个集合(未过滤)显示,但是在我使用了各种过滤函数之后,现在想要到 return 整个集合未过滤显示的默认状态,这似乎 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
后的预期结果是产量显示 entire/unfiltered 集合,如下所示:
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"
如何制定我的重置 function/or 查询以启用上述期望的结果?
提前致谢
我不知道为什么我没有早点弄清楚,但是我 RESET 所要做的就是简单地将所有数组值添加到会话中如下所示:
'click .reset' (event, instance) {
event.preventDefault();
Session.set('pendingFilter', [ "Pending", "Complete", "Success", "Reversed" ]);
var testing = Session.get('pendingFilter');
console.log("Testing PendingFilter: " +testing )
},
我的 MongoDB 查询结果受会话值的影响,例如 recipientsDetails.find({ paymentStatus:{$in: Session.get('pendingFilter')} }).fetch();
这些 pendingFilter Sessions 值被设置为启用过滤结果,从而仅需要集合中的特定值仅显示:成功支付的交易、失败的交易或撤销的交易等
默认情况下,pendingFilter
会话值是空的,所以当我的页面第一次加载时,整个集合(未过滤)显示,但是在我使用了各种过滤函数之后,现在想要到 return 整个集合未过滤显示的默认状态,这似乎 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
后的预期结果是产量显示 entire/unfiltered 集合,如下所示:
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"
如何制定我的重置 function/or 查询以启用上述期望的结果?
提前致谢
我不知道为什么我没有早点弄清楚,但是我 RESET 所要做的就是简单地将所有数组值添加到会话中如下所示:
'click .reset' (event, instance) {
event.preventDefault();
Session.set('pendingFilter', [ "Pending", "Complete", "Success", "Reversed" ]);
var testing = Session.get('pendingFilter');
console.log("Testing PendingFilter: " +testing )
},