2016-09-09 12 views
0

私は取得していますエラー重複キーエラーランキング:insertOne MongoDBの

duplicate key error index: my.own.$_id_ dup key: { : ObjectId('57d2c4857c137b20e40c633f') 

これのObjectIdが最初insertOneからである()が、第2 insertOne()コマンドでは、誰もが、この中で私を助けることができる失敗しました。 はちょうどあなたが今、あなたは間違っている、更新操作を実行するために、同じ方法を使用しようとしている、insertOneメソッドを使用して文書を挿入するJavaドライバのMongoDB

import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential; 
import com.mongodb.ServerAddress; 
import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 
import com.sun.org.apache.xml.internal.security.utils.HelperNodeList; 
import org.bson.Document; 

import java.util.Arrays; 

import static com.mongodb.MongoCredential.*; 


public class Main { 
    public static void main(String[] args){ 
     //Creating Credential Parameters 
     //MongoCredential credential = createScramSha1Credential("root","my","root".toCharArray()); 
     //MongoClient to connect 
     MongoClient mongo = new MongoClient(); 
     MongoDatabase database = mongo.getDatabase("my"); 
     MongoCollection<Document> collection = database.getCollection("own"); 
     Document document = new Document("x",1).append("y",3); 
     collection.insertOne(document); 
     collection.insertOne(document.append("z",3)); 
    } 
} 
+0

私はあなたが言語/ドライバとも 'import's /'を指定するべきだと思います's/...を使って。おそらく問題は 'document'オブジェクトを再利用していることでしょう。 –

+0

@GáborBakos追加を使用して別の文書を挿入できませんか? –

+0

@GáborBakoscode updated –

答えて

2

を学びます。

{ collection.updateOne(document.append("z",3)); } 

ドキュメントを更新するには、updateOneメソッドを使用する必要があります。 insertOneは実際にあなたのmongoコレクションにドキュメントを再挿入しようとします。したがって、あなたはエラーを受け取ります。

+0

各ドキュメントは、それぞれ独自の方法で固有のものです。 –

0

あなたはinsertOneを実際に使用して、ドキュメントをmongoコレクションに再挿入しようとするため、エラーが発生します。

今の場合、別のコレクションの意味は、 collection.insertOne(document); collection.insertOne(document.append( "z"、3))。remove(_id));

uが同じコレクション手段、 collection.updateOneたい場合(document.append( "Z" を、3))

関連する問題