我出错了
duplicate key error index: my.own.$_id_ dup key: { : ObjectId('57d2c4857c137b20e40c633f')
这个ObjectId来自第一个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));
}
}
最佳答案
您使用insertOne方法插入了文档,现在您正尝试使用相同的方法执行错误的更新操作。
{ collection.updateOne(document.append("z",3)); }
您必须使用updateOne方法来更新文档。 insertOne实际上尝试将文档重新插入到mongo集合中,因此会出现错误。
关于java - 重复键错误索引:insertOne MongoDB,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39413841/