1. ホーム
  2. mongodb

[解決済み] mongooseを使ってmongodbにドキュメントを挿入し、生成されたidを取得する方法は?

2022-03-11 19:45:09

質問

mongooseを使ってmongodbを操作しています。今、テストのために、ネイティブ接続でmongodbにデータを挿入したいと思っています。

しかし、問題は挿入後に生成されたIDを取得する方法です?

試してみました。

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

でも、印刷される。

{ a: 'abc' }

はありません。 _id フィールドがあります。

解決方法は?

を生成することができます。 _id を自分で作ってデータベースに送ります。

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

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

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

これは、私がMongoDBで気に入っている機能のひとつです。互いにリンクしているオブジェクトをたくさん作る必要がある場合、アプリとデータベース間で何度も往復する必要はありません。アプリの中ですべてのIDを生成して、あとはすべてを挿入するだけです。