我收到错误
duplicate key error index: my.own.$_id_ dup key: { : ObjectId('57d2c4857c137b20e40c633f')
这个ObjectId来自第一个insertOne(),但第二个insertOne()命令失败,任何人都可以帮助我。 刚学习Java Driver 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 :(得分:2)
您使用insertOne方法插入了一个文档,现在您尝试使用相同的方法来执行错误的更新操作。
{ collection.updateOne(document.append("z",3)); }
您必须使用updateOne方法更新文档。 insertOne实际上尝试将文档重新插入到您的mongo集合中,因此您会收到错误。
答案 1 :(得分:0)
你必须使用insertOne实际上尝试将文档重新插入你的mongo集合,因此你会收到错误。
现在,如果你想要另一个集合, collection.insertOne(文件); collection.insertOne(document.append(&#34; Z&#34;,3))。除去(_id));
如果你想要相同的收藏意味着, collection.updateOne(document.append(&#34; Z&#34;,3))