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;
}
...
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다