如何使用 Dart 获取最后一次插入/保存到 mongoDB 的生成的 Id?
问问题
1503 次
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 回答