【发布时间】:2014-01-08 07:26:03
【问题描述】:
以下代码对我不起作用:
public void addFieldWithValueToDoc(String DBName, String collName, String docID, String key, String value) {
BasicDBObject setNewFieldQuery = new BasicDBObject().append("$set", new BasicDBObject().append(key, value));
mongoClient.getDB(DBName).getCollection(collName).update(new BasicDBObject().append("_id", docID), setNewFieldQuery);
}
其中 mongoClient 变量的类型是 MongoClient。
它的灵感来自 Add new field to a collection in MongoDB 。 出了什么问题以及如何正确处理? 谢谢。
【问题讨论】:
-
您的代码应该可以工作。一件事可以是
_id字段。真的是String还是ObjectId?如果后者为真,请将您的代码更改为append("_id", new ObjectId(docID)) -
@orid 几乎可以肯定是正确的 - 字符串 docID 与 ObjectId() 类型不匹配。
-
在什么方面没有奏效?是有错误,还是没有得到预期的结果?另外,你不需要做
new BasicDBObject().append(key, value)你可以简单地做new BasicDBObject(key, value)