寫入資料發生 Document failed validation 錯誤


  • 註冊用戶

    我使用mongodb的java driver寫入資料時,發生Document failed validation的錯誤,請問各位大師有解嗎?

    已經確認欲寫入的資料沒有特殊字元、符號等。

    Document doc = new Document();
    doc.put("name", name);
    doc.put("id", id); collection.updateOne(Filters.and(Filters.eq("name", name), Filters.eq("id", id)), new Document("$set", doc), new UpdateOptions().upsert(true));

    錯誤訊息

    com.mongodb.MongoWriteException: Document failed validation

  • Lv 1

    @rufus 说:

    Document failed validation

     是不是該 Collection 有設定驗證器(Validator). 你的輸入資料不符合設定的規範


  • 註冊用戶

    我執行起來沒有錯誤,給你參考

    import com.mongodb.MongoClient;
    import com.mongodb.MongoClientURI;
    import com.mongodb.client.MongoDatabase;
    import com.mongodb.client.MongoCollection;
    import com.mongodb.client.model.Filters;
    import com.mongodb.client.model.UpdateOptions;
    import org.bson.Document;

    public class test
    {
        public static void main( String[] args )
        {
            MongoClient mongoClient = new MongoClient(new MongoClientURI("mongodb://127.0.0.1:27017"));
            MongoDatabase database  = mongoClient.getDatabase("test");
            MongoCollection<Document> collection  = database.getCollection("log");
            String name  = "test";
            Integer id   = 1;
            Document doc = new Document();
            doc.put("name", name);
            doc.put("id", id);
            collection.updateOne(Filters.and(Filters.eq("name", name), Filters.eq("id", id)), new Document("$set", doc), new UpdateOptions().upsert(true));
        }
    }


  • 註冊用戶

    @22265

    原來是我們DBA在collection加入了validation了,感謝解答。


  • 註冊用戶

    @rufus

    Exception 不會把哪個欄位驗證有問題呈現出來嗎?


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待