How to insert a doc into mongodb using mongoose and get the generated id?

mongodb, mongoose

Solution

You can generate `_id` yourself and send it to the database.

var ObjectID = require('mongodb').ObjectID;

var user = {
  a: 'abc',
  _id: new ObjectID()
};

conn.collection('aaa').insert(user);

This is one of my favourite features of MongoDB. If you need to create a number of objects, that are linked to each other, you don't need to make numerous round-trips between app and db. You can generate all ids in the app and then just insert everything.

Problem

I'm using mongoose to operate mongodb. Now, for testing, I want to inserting some data into mongodb by native connection. But the question is how to get the generated id after inserting? I tried: ``` var mongoose = require('mongoose'); mongoose.connect('mongo://localhost/shuzu_test'); var conn = mongoose.connection; var user = { a: 'abc' }; conn.collection('aaa').insert(user); console.log('User:'); console.log(user); ``` But it prints: ``` { a: 'abc' } ``` There is no `_id` field.

Original source

Related problems