2015-12-16 111 views
2

我在一個集合中有一個文檔。我試圖通過添加一個字段來更新該文檔。但我正面臨着下面的錯誤。如何解決com.mongodb.WriteConcernException

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; 
      } 
     } 
    } 
} 
+0

請將您的代碼,你寫更新。 –

+0

剛纔我編輯了代碼 – dev333

+0

任何人都可以請我幫忙...... – dev333

回答

2

的一個問題,我看到的是,你不需要路過整個docupdate方法的第一個參數:

collection.update(new BasicDBObject().append("_id", doc._id), updatedObj); 
+0

非常感謝您的建議 – dev333

+0

這是否解決了您的問題? –

+1

是的,我已經解決了這個問題,將mongodb的版本從2.4.9更改爲3.2,並編輯了你的建議代碼。它爲我工作 – dev333