Meteor:如何使用Momentjs在Mongodb中添加和查询日期
Meteor: How to add and query Dates in Mongodb with Momentjs
我想显示今天到期的所有对象。使用我的夹具数据一切正常。但新添加的对象不会显示。
夹具
...
var today = moment().toDate();
Cards.insert({
deckName: javascriptId,
due: today,
front: 'blaablaa',
back: 'blaablaablaa'
});
...
显示对象
Template.showCards.helpers({
cards: function () {
var end = moment().toDate();
return Cards.findOne({
deckName: this._id,
due: {"$lte": end}
});
}
添加新的截止日期以隐藏对象
Template.showCards.events({
...
'click #difficulty button': function(event) {
var incBy = parseInt(event.target.value);
console.log(incBy);
console.log(typeof incBy);
var today = moment();
var newDue = moment(today).add(incBy,'days').toDate();
Cards.update(
this._id, {
$set: {due: newDue}
}
);
}
});
添加新对象
Template.addCards.events({
'submit form': function (event, template) {
event.preventDefault();
var deckNameVar = event.target.deckName.value;
var frontVar = event.target.front.value;
var backVar = event.target.back.value;
var today = moment().toDate();
Cards.insert({
deckName: deckNameVar,
due: today,
front: frontVar,
back: backVar
});
}
});
新对象将正确添加到数据库中,但由于某种原因它们不显示。
moment().toDate()
返回一个Date
对象,该对象指定确切的时刻(例如 1/4/15 at 16:32:12),而不是一天的结束或开始。在存储到期日时请记住这一点。
每当您的卡帮程序运行时,它都会找到一个确切的时刻,并检查所有小于该确切时刻的卡。添加新卡不会强制帮助程序重新运行,因为它们不满足条件。换句话说,你的end
不是被动的,而且太具体了。
您可以通过使end
成为一天的实际结束来解决此问题:
var end = moment().endOf('day').toDate();
此外,您的助手使用的是findOne
而不是find
因此您只会获得一张卡,而不是与选择器匹配的所有卡。如果只想查看上次更新的卡片,请按如下所示修改助手:
return Cards.findOne({deckName: this._id, due: {$lte: end}}, {sort: {due: -1}});
最后,您需要解决如何加入套牌和卡片。在您的灯具中,您使用 id 表示deckName
,然后在提交中使用套牌的名称,最后在您的cards
助手中,您通过 id 进行搜索。选择一种方式并坚持下去。我建议deckId
调用该字段并仅使用 ids(请注意,这需要修复您的提交以按名称查找甲板,然后使用相应的 id)。
相关文章:
- 将数据库中的超链接添加到查询结果
- 我想将查询字符串变量添加到JSON名称/值对中
- 新手查询动态添加属性
- 用于添加边缘的gremlin服务器查询
- 添加行并运行多个mySQL查询
- iron路由器将参数添加到字符串中,并添加一个查询
- j查询检查复选框是否被选中,然后向输入字段添加值
- 将查询字符串添加到当前URL中嵌入的查询的锚链接
- 在聚合附近,添加基本查询选项
- jQuery脚本,它搜索现有的查询参数并且不添加“"如果存在
- jasmine:在url中添加和读取查询字符串
- 向Titanium添加查询
- 循环遍历数组,并在javascript中向sql查询添加参数
- 如何在Node.js中向Post请求添加查询
- 动态添加数据时按数据属性查询JQuery选择器
- 向URL重定向添加查询字符串
- 使用pushstate添加查询字符串
- 向data-href中添加查询字符串
- 如何在JavaScript中添加查询字符串
- 使用猫鼬模型添加查询条件