如何在使用Java驱动程序更新的Mongo集合中强制增加id
我有下面的代码,如果Mongo文档不存在,应该更新或插入它如何在使用Java驱动程序更新的Mongo集合中强制增加id,java,mongodb,Java,Mongodb,我有下面的代码,如果Mongo文档不存在,应该更新或插入它 ByteArrayOutputStream b = new ByteArrayOutputStream(); ObjectOutputStream o = new ObjectOutputStream(b); o.writeObject(value); BasicDBObject doc = new BasicDBObject(“objectData”, getBytesForObject(o)) .
ByteArrayOutputStream b = new ByteArrayOutputStream();
ObjectOutputStream o = new ObjectOutputStream(b);
o.writeObject(value);
BasicDBObject doc = new BasicDBObject(“objectData”, getBytesForObject(o))
.append(“objectKey”, key)
.append(“LastModified”, mongoDateFormat.format(new Date()));
MongoCollection<BasicDBObject> collection =
getMongoDatabase().getCollection("cache", BasicDBObject.class);
UpdateOptions updateOptions = new UpdateOptions();
updateOptions.upsert(true);
collection.updateOne(new BasicDBObject(“objectKey”, key), new BasicDBObject("$set", doc), updateOptions);
但是,此代码始终将_id插入为0。
如何解决这个问题?嗯?您似乎在代码中定义了此处未列出的内容。_id基本上是自动生成的,是ObjectId,而不是整数,除非执行其他操作。除此之外,还有其他代码是真正的错误。不,这就是所有代码,唯一没有列出的代码是函数getBytesForObject