MongoDB / NodeJS - 数据插入不会自动递增Object_ID

时间:2011-06-15 00:24:08

标签: node.js mongodb

您好:我是Node.JS,MongoDB和Mongoose的新手,如果我的问题很天真,请原谅我。

我写了一小段代码来异步地将数据从表单发送到数据库,然后在客户端上显示回来。

插入物有点工作。每次执行表单提交时,我的数据都会插入到DB中,但每次都使用相同的ObjectID,这意味着文档ID不会发生任何增量。

我有什么问题吗?我应该手动递增ID还是有不同的方法来处理对象/插入/等。用这些技术。

非常感谢任何帮助。感谢。

代码:

// Launch express and server
var express = require('express');
var app = express.createServer();

//connect to DB
var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://127.0.0.1/napkin_v1');

//Configure Node w/ Dependencies
app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(require("stylus").middleware({
      src: __dirname + "/public",
      dest: __dirname + "/public",
      compress: false
    }));
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  //app.use(require('stylus').middleware({ src: __dirname + '/public' }));
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});


// Define Schema for Message
var Schema = mongoose.Schema;

var messageSchema = new Schema({
    body: { type: String, index: { unique:true}},
    user: { type: String, index: { unique:true}},
    dateCreated: Date,
    tags: String
});

mongoose.model('Message', messageSchema);
var Message = mongoose.model('Message');

//Insert First Message into DB

var message = new Message();


app.get('/', function(req,res){
  Message.find(function(error, docs){
    res.render('layout.jade', {
      locals: {
        title: 'Napkin v0.111',
        messages: docs
      }
    });
  })
})

app.post('/', function(req,res){
  message.user = req.param('user');
  message.body = req.param('body');
  message.save(function() {
    res.redirect('/');
  });
});

//Launch Server
app.listen(3002);
console.log("Express server listening on port %d", app.address().port);

2 个答案:

答案 0 :(得分:1)

您的邮件实例是全局的,因此您不会创建新邮件。你需要做var message = new Message();在根帖子功能里面。

答案 1 :(得分:0)

var Schema = mongoose.Schema之后,我想你需要这个var ObjectId = Schema.ObjectId;