44

私はmongodbを操作するためにmongooseを使用しています。さて、テストのために、ネイティブ接続で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

4

4 に答える 4

50

_id自分で生成してデータベースに送信できます。

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

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

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

これは、MongoDB の私のお気に入りの機能の 1 つです。相互にリンクされた多数のオブジェクトを作成する必要がある場合、app と db の間で何度も往復する必要はありません。アプリですべての ID を生成してから、すべてを挿入するだけです。

于 2012-05-09T16:52:53.823 に答える
2

upsert: true オプションで Update メソッドを使用できます

aaa.update({
    a : 'abc'
}, {
    a : 'abc'
}, {
    upsert: true
});
于 2017-12-20T08:00:00.613 に答える