MongoDB - InsertOne () получить InsertID - PullRequest
0 голосов
/ 29 августа 2018

Я вставляю документ в коллекцию под названием users. После вставки я хочу вернуть идентификатор документа, чтобы продолжить работу с ним. Поэтому я написал этот код:

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

Возвращенный вставленный идентификатор равен примерно так:

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

Но я не могу по-настоящему работать с этим. Мне нужна непрерывная строка или число.

Любая помощь приветствуется:)

1 Ответ

0 голосов
/ 29 августа 2018

Использовать 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...