在创建时为每个 MongoDB 项目添加日期()/时间戳
Adding a date()/timestamp to each MongoDB item upon creation
这是我今天关于 Node.js 的第二个问题。时间不早了,希望大家帮我在睡觉前快速集成这个功能
我有一个小型问答应用程序,我可以在其中读取和写入数据 from/to Mongo我的视图页面上的数据库。
但是,我想在写入 MongoDB 的每个项目实例中注册一个时间戳或 date()。
在视图中,目前只有作者、标题和文本 body 必须可见。但是当我查询 Mongo 时,我想要一个单独的 属性 来列出创建的日期和时间。 (只有日期就够了)
我在我的架构中定义了一个 属性 "date" :日期。我以为它会自动添加这个,但只添加了标题、作者和 body。我认为这是因为它们在讨论的路线中被定义为 vals 但我确定。
这些是我的代码文件:
discussions.js -- /路线
var mongoose = require('mongoose');
var express = require('express');
var router = express.Router();
var Discussion = require('../models/discussions');
router.get('/', function(req, res, next){
// alle db records uitlussen, op render alldiscussions
var db = req.db;
Discussion.find({},{},function(e,docs){
res.render('all_discussions', {
"all_discussions" : docs
});
console.log(docs);
});
});
router.get('/create', function(req, res, next){
res.render('add_discussion', {title: 'Diskussr'});
});
router.post('/submit', function(req, res) {
//set DB
var db = req.db;
//form vals
var author = req.body.name;
var title = req.body.title;
var body = req.body.body;
//set collection
var collection = db.get('discussions');
//insert
collection.insert({
"author" : author,
"title" : title,
"body" : body
}, function (err, doc) {
if (err) {
res.send("Database submit error");
}
else {
res.location("all_discussions");
res.redirect("all_discussions");
}
});
});
module.exports = router;
add_discussion.jade -- /views
extends layout
block content
h1 Start a discussion
p Start a discussion here on #{title} and help eachother out.
p Voeg hier uw vraag in:
form(action="/submit" method="post" name="submit_discussion")
input(id="name", placeholder="Your name" name="name")
br
br
input(id="title", placeholder="Brief summary of your problem." name="title")
br
br
input(id="body", placeholder="Explain your problem." name="body")
br
br
button(type="sumbit" id="submit" value="submit") Submit
br
discussions.js -- /模型
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
//schema discussions
var DiscussionSchema = new Schema({
author: String,
title: String,
body: String,
category: String,
created: Date
},
{ collection : 'discussions' });
// model
var Discussion = mongoose.model('Discussion', DiscussionSchema, 'discussions');
// test functie: aanmaken vraag on load
// var firstDiscussion = new Discussion({author: "Testuser 1", title: "Testvraag via models"});
// console.log(firstDiscussion);
// //vraag saven
// firstDiscussion.save(function (err, firstDiscussion){
// if (err) return console.error(err);
// });
module.exports = Discussion;
只需为 created
字段添加一个默认值:
//schema discussions
var DiscussionSchema = new Schema({
author: String,
title: String,
body: String,
category: String,
created: { type: Date, default: Date.now }
},
{ collection : 'discussions' });
或者,由于您使用 ObjectId 作为主键,您可以按照@adeneo 的建议使用 getTimestamp()
提取时间戳:
Discussion.find({}, function(e,docs){
docs.forEach(function(doc) {
console.log("created: " + doc._id.getTimestamp());
});
});
这是我今天关于 Node.js 的第二个问题。时间不早了,希望大家帮我在睡觉前快速集成这个功能
我有一个小型问答应用程序,我可以在其中读取和写入数据 from/to Mongo我的视图页面上的数据库。
但是,我想在写入 MongoDB 的每个项目实例中注册一个时间戳或 date()。
在视图中,目前只有作者、标题和文本 body 必须可见。但是当我查询 Mongo 时,我想要一个单独的 属性 来列出创建的日期和时间。 (只有日期就够了)
我在我的架构中定义了一个 属性 "date" :日期。我以为它会自动添加这个,但只添加了标题、作者和 body。我认为这是因为它们在讨论的路线中被定义为 vals 但我确定。
这些是我的代码文件:
discussions.js -- /路线
var mongoose = require('mongoose');
var express = require('express');
var router = express.Router();
var Discussion = require('../models/discussions');
router.get('/', function(req, res, next){
// alle db records uitlussen, op render alldiscussions
var db = req.db;
Discussion.find({},{},function(e,docs){
res.render('all_discussions', {
"all_discussions" : docs
});
console.log(docs);
});
});
router.get('/create', function(req, res, next){
res.render('add_discussion', {title: 'Diskussr'});
});
router.post('/submit', function(req, res) {
//set DB
var db = req.db;
//form vals
var author = req.body.name;
var title = req.body.title;
var body = req.body.body;
//set collection
var collection = db.get('discussions');
//insert
collection.insert({
"author" : author,
"title" : title,
"body" : body
}, function (err, doc) {
if (err) {
res.send("Database submit error");
}
else {
res.location("all_discussions");
res.redirect("all_discussions");
}
});
});
module.exports = router;
add_discussion.jade -- /views
extends layout
block content
h1 Start a discussion
p Start a discussion here on #{title} and help eachother out.
p Voeg hier uw vraag in:
form(action="/submit" method="post" name="submit_discussion")
input(id="name", placeholder="Your name" name="name")
br
br
input(id="title", placeholder="Brief summary of your problem." name="title")
br
br
input(id="body", placeholder="Explain your problem." name="body")
br
br
button(type="sumbit" id="submit" value="submit") Submit
br
discussions.js -- /模型
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
//schema discussions
var DiscussionSchema = new Schema({
author: String,
title: String,
body: String,
category: String,
created: Date
},
{ collection : 'discussions' });
// model
var Discussion = mongoose.model('Discussion', DiscussionSchema, 'discussions');
// test functie: aanmaken vraag on load
// var firstDiscussion = new Discussion({author: "Testuser 1", title: "Testvraag via models"});
// console.log(firstDiscussion);
// //vraag saven
// firstDiscussion.save(function (err, firstDiscussion){
// if (err) return console.error(err);
// });
module.exports = Discussion;
只需为 created
字段添加一个默认值:
//schema discussions
var DiscussionSchema = new Schema({
author: String,
title: String,
body: String,
category: String,
created: { type: Date, default: Date.now }
},
{ collection : 'discussions' });
或者,由于您使用 ObjectId 作为主键,您可以按照@adeneo 的建议使用 getTimestamp()
提取时间戳:
Discussion.find({}, function(e,docs){
docs.forEach(function(doc) {
console.log("created: " + doc._id.getTimestamp());
});
});