如何解决com.mongodb.WriteConcernException
我收集了一份文件。我试图通过添加一个字段来更新该文档。但我面临以下错误如何解决com.mongodb.WriteConcernException,mongodb,Mongodb,我收集了一份文件。我试图通过添加一个字段来更新该文档。但我面临以下错误 Exception in thread "main" com.mongodb.WriteConcernException: { "serverUsed" : "localhost:27017" , "err" : "invalid operator: $numberLong" , "code" : 10068 , "n" : 0 , "connectionId" : 279 , "ok" : 1.0} at com.
Exception in thread "main" com.mongodb.WriteConcernException: { "serverUsed" : "localhost:27017" , "err" : "invalid operator: $numberLong" , "code" : 10068 , "n" : 0 , "connectionId" : 279 , "ok" : 1.0}
at com.mongodb.CommandResult.getWriteException(CommandResult.java:90)
有人能帮我解决这个错误吗
package com.sample.dataload;
import java.net.UnknownHostException;
import java.util.Set;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.sample.dao.impl.mongo.MongoConnection;
import com.sample.dao.impl.mongo.MongoConstants;
public class Test
{
public static void main(String[] args) throws UnknownHostException
{
MongoConnection mongoConnection = new MongoConnection();
MongoClient mongoClient = mongoConnection.getMongoClient();
DB sourceDb = mongoClient.getDB(MongoConstants.SOURCE_DB);
Set<String> sourceCollections = sourceDb.getCollectionNames();
System.out.println(sourceCollections);
for (String eachCollection : sourceCollections)
{
System.out.println(eachCollection);
DBCollection collection = sourceDb.getCollection(eachCollection);
DBCursor cursor = collection.find(new BasicDBObject());
while (cursor.hasNext())
{
DBObject doc = cursor.next();
BasicDBObject updatedObj = new BasicDBObject().append(MongoConstants.SET, new BasicDBObject().append(DataLoadConstants.IS_PROCESSED, "true"));
collection.update(doc, updatedObj);
break;
}
}
}
}
package com.sample.dataload;
导入java.net.UnknownHostException;
导入java.util.Set;
导入com.mongodb.BasicDBObject;
导入com.mongodb.DB;
导入com.mongodb.DBCollection;
导入com.mongodb.DBCursor;
导入com.mongodb.DBObject;
导入com.mongodb.MongoClient;
导入com.sample.dao.impl.mongo.MongoConnection;
导入com.sample.dao.impl.mongo.MongoConstants;
公开课考试
{
公共静态void main(字符串[]args)引发UnknownHostException
{
MongoConnection MongoConnection=新的MongoConnection();
MongoClient MongoClient=mongoConnection.getMongoClient();
DB sourceDb=mongoClient.getDB(MongoConstants.SOURCE\u DB);
Set sourceCollections=sourceDb.getCollectionNames();
System.out.println(sourceCollections);
for(字符串eachCollection:sourceCollections)
{
System.out.println(每个集合);
DBCollection=sourceDb.getCollection(eachCollection);
DBCursor cursor=collection.find(新的BasicDBObject());
while(cursor.hasNext())
{
DBObject doc=cursor.next();
BasicDBObject UpdateObject=new BasicDBObject().append(MongoConstants.SET,new BasicDBObject().append(DataLoadConstants.IS_PROCESSED,“true”);
收款、更新(单据、更新单);
打破
}
}
}
}
我看到的一个问题是,在update
方法的第一个参数中,不需要传递整个doc
:
collection.update(new BasicDBObject().append("_id", doc._id), updatedObj);
请添加您正在编写以更新的代码。刚才我已经编辑了codeCan任何人请帮助我…MongoConstants.SET和DataLoadConstants.SET的值是多少?是否已处理??这里,MongoConstants.SET=$SET非常感谢您的建议这解决了您的问题吗?是的,我已经通过将mongodb的版本从2.4.9更改为3.2解决了这个问题,并编辑了我们建议的代码。它对我很有用