我有一个本地集合,可以在用户查看条目时记录。它存储条目的ID和查看时间:
viewedDate = new Date();
notifications.insert({
'viewed': this.data._id,
'viewedDate': viewedDate
});
我想从另一个find()中排除此集合中的任何“已查看”ID(我基本上想要计算尚未查看的条目数)
如何使用notifications.find()的结果排除另一个find()的结果?如果我将notifications.find()分配给变量,它会将所有类型的东西作为对象返回。
好的,所以如果我使用fetch(),我可以限制返回的内容 - 我可以在find()中执行此操作吗?
myNotes = notifications.find({}, {fields: {'viewedDate' :0, _id:0}}).fetch();
返回
[
Object
viewed: "HqYcCma3qKseHALyv"
__proto__: Object
]
答案 0 :(得分:0)
感谢Meteor IRC中garilla_的一些宝贵帮助,我得到了它的解决方案,解决方法如下:
myViewedOffers = notifications.find({},{fields: {'viewed':1}}).fetch();
myViewedArray = myViewedOffers.map(function(viewed){return viewed.viewed});
offerCount = Offers.find({_id: {$nin: myViewedArray}}).count();