gpt4 book ai didi

java - 使用 java mongo db 驱动程序使用 MongoDB 插入时出现重复键错误

转载 作者:行者123 更新时间:2023-12-01 12:52:31 25 4
gpt4 key购买 nike

我在尝试从 JSON 文件插入数据时收到此错误。仅将一项添加到数据库中。

11000 E11000 duplicate key error index: awdb.mycollection.$_id_  dup
> key: { : ObjectId('53954d897aadbe032a33cd68') }

> > db.mycollection.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "awdb.mycollection"
},
{
"v" : 1,
"unique" : true,
"key" : {
"UDID" : 1
},
"name" : "UDID_1",
"ns" : "awdb.mycollection",
"sparse" : true
}
]
>

以下是我正在使用的 JSON 输入文件。

{"UDID":"1234","FriendlyName":"Ben Android","sn":"abc123","ManDate":"12/12/8234"}
{"UDID":"1235","FriendlyName":"Android","sn":"abc23","ManDate":"12/12/1254"}
{"UDID":"1236","FriendlyName":"Ben droid","sn":"abc12","ManDate":"12/12/1734"}

这是我用来插入 JSON 的代码

while ((sCurrentLine = br.readLine()) != null) {
d=g.fromJson(sCurrentLine, Device.class);
m.create(d);
}

这是我的创建函数

public boolean create(Device d) {
document.put("UDID",d.UDID);
document.put("name", d.FriendlyName);
document.put("Serial", d.sn);
document.put("Manf", d.ManDate);
collection.insert(document);
return true;
}

和我的设备类

    public class Device {

public String UDID;
public String FriendlyName;
public String sn;
public String ManDate;
}

最佳答案

你需要这样做:

public boolean create(Device d) {
BasicDBObject document = new BasicDBObject();
document.put("UDID",d.UDID);
document.put("name", d.FriendlyName);
document.put("Serial", d.sn);
document.put("Manf", d.ManDate);
collection.insert(document);
return true;
}

然后您将创建一个新对象以插入到您的集合中。希望这会有所帮助。

编辑:在代码中使用 getter 和 setter 也是一个很好的做法,如下所示:

        public class Device {

private String UDID;
private String FriendlyName;
private String sn;
private String ManDate;

public String getUDID(){
return this.UDID;
}
public String getFriendlyName(){
return this.FriendlyName;
}
public void setUDID(String UDID){
return UDID = this.UDID;
}
public String setManDate(String ManDate){
return ManDate = this.ManDate;
}

...

}

关于java - 使用 java mongo db 驱动程序使用 MongoDB 插入时出现重复键错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24114670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com