5

Dartを使用してmongoDBへの最後の挿入/保存の生成されたIDを取得するにはどうすればよいですか?

4

2 に答える 2

7

デフォルトでは、mongo_dart は mongodb サーバーに挿入されたオブジェクトの ID を作成させ、これらの ID を取得する手段を提供しません。

シナリオを容易にするために、挿入前にオブジェクト ID を事前に作成することができます。これを実証するために新しいテストを追加しました。_id フィールドはマップの最初のフィールドでなければならないことに注意してください - これは mongodb で必要です。

testInsertWithObjectId(){
  Db db = new Db('${DefaultUri}mongo_dart-test');
  DbCollection coll;
  var id;
  var objectToSave;
  db.open().chain(expectAsync1((c){
    coll = db.collection('testInsertWithObjectId');
    coll.remove();
    objectToSave = {"_id": new ObjectId(),"name":"a", "value": 10};
    id = objectToSave["_id"];
    coll.insert(objectToSave);
    return coll.findOne(where.eq("name","a"));
  })).then(expectAsync1((v1){
    expect(v1["_id"],id);
    expect(v1["value"],10);
    db.close();
  }));
}
于 2013-01-07T08:51:08.853 に答える
0

あなたがあなたのデータベースに挿入myObjした場合、私はあなたがあなたのオブジェクトmyObj["_id"]のを取得するためidにあなたがすることができるとかなり確信しています。

または、最後に挿入されたオブジェクトのハンドルがなくなった状況に対処していますか?

于 2013-01-06T20:29:38.870 に答える