MongoDB-InsertOne()获得InsertID

时间:2018-08-29 13:26:08

标签: angularjs node.js mongodb

我正在将文档插入名为用户的集合中。插入后,我想返回文档ID以便继续使用它。所以我写了这段代码:

this.db.collection("users")
  .insertOne({ xy })
   .then(ref => {
      console.log(ref.insertedId);
   });

返回的insertId等于以下内容:

id:Uint8Array(12) [89, 131, 152, 99, 28, 157, 43, 0, 0, 90, 228, 11]

但是我不能真正使用它。我需要一个连续的字符串或数字。

我们将不胜感激:)

1 个答案:

答案 0 :(得分:0)

使用MongooseJS:https://mongoosejs.com/

models/user.js

内创建用户模型
 var mongoose = require('mongoose');
 var Schema = mongoose.Schema;

 var userSchema = new Schema({
    name:  String,
    email: String,
    created_at: { type: Date, default: Date.now },
  },{
    collection: 'User'
  });

var User = module.exports  = mongoose.model('User', userSchema);

在您的user.js中需要此index.js文件

global.User = require('./models/user');

您的index.js应该是:

global.express = require('express');
global.app = express();
global.bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())
global.mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/mydb');
global._=require('underscore');
global.User = require('./models/user');

app.post('/insert',function(req,res){
     console.log(req.body);

     var user=new User({
        name:req.body.name;
        email:req.body.email;
     });
     user.save();
     User.find({},function(err,users){
        (!err && users){
           console.log(users);
           var userIDs=_.pluck(users,'_id');
            return res.json({
                users:userIDs
            });
        }
     })
}); 

app.listen(3000);

您的前端应为html格式

<form method="post" action="/insert">
   <input type="text" name="name" required/>
   <input type="email" name="email" required/>
   <button type="submit">Submit</button>
</form>