【问题标题】:MongoDB - InsertOne() get InsertIDMongoDB - InsertOne() 获取 InsertID
【发布时间】:2019-02-04 07:28:13
【问题描述】:

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

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

返回的insertedId 是这样的:

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

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

任何帮助表示赞赏:)

【问题讨论】:

    标签: angularjs node.js mongodb


    【解决方案1】:

    使用 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);
    

    在您的index.js 中需要此user.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>
    

    【讨论】:

    • 嘿!我目前正在使用 MongoDB 的 Stitch Service,并且由于我的整个应用程序已经建立在它之上,我不想重做每个 db realted 函数。我的设置有没有办法做到这一点?我的意思是它是一个如此基本的功能,我得到了一个 id,只是没有一个我可以使用。
    猜你喜欢
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    相关资源
    最近更新 更多