hi,前面刚刚发现这个情况没看清楚。之前先用insert功能,再用upsert,出现了upsert不成功,也未报错。后来看了Diablo你的介绍,就用upsert的功能,代码如下:
BSONObject updatecondition=new BasicBSONObject("_id",i);
BSONObject obj = new BasicBSONObject();
obj.put("test_value","aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
obj.put("test_mark", i);
BSONObject updatevalue = new BasicBSONObject("$push",obj);
BSONObject hint = new BasicBSONObject("","$id");
try
{
cl.upsert(updatecondition,updatevalue,hint);
}
catch (BaseException e) {
System.out.println("upsert error, description:" + e.getErrorType());
}
结果插入的记录中_id就变成上面贴的结果了
连跑两次就生成了2组随机_id对应的结果,不知道是不是我程序写错了?
shell中也未成功
> db.testDBCS.testDB_up0.upsert({$push:{"test_mark":1}},{"_id":0},{"":"$id"})
Takes 0.235s.
> db.testDBCS.testDB_up0.find({"_id":0})
Return 0 row(s).
Takes 0.323s.