Android MongoDB 文档迭代不一致,混淆
Android MongoDB Document iteration not consistent, confused
我正在尝试遍历所有文档并解析值并将它们添加到它们自己的列表中。问题是,当我尝试解析并添加到列表时,准确地说,它会在中途提前停止。但是当我不添加所有额外代码来解析并添加到列表时,它会打印出所有代码 (4).
try {
while(cursor.hasNext()) {
System.out.println("Cursor Test" + cursor.next().toJson());
myDoc = cursor.next();
try {
JSONObject object = new JSONObject(myDoc.toJson());
UserName.add((String) object.get("name"));
UserID.add((String) object.get("id"));
ProfilePic.add( (String) object.get("ProfilePic"));
//System.out.println("USERID:" + UserID);
//System.out.println("ProfilePic:" + ProfilePic);
//System.out.println("USERNAME:" + UserName);
//System.out.println("Count: " + collectionCount);
} catch (JSONException e) {
e.printStackTrace();
}
}
} finally{cursor.close();}
只打印出两个
同时
try {
while(cursor.hasNext()) {
System.out.println("Cursor Test" + cursor.next().toJson());
} finally{cursor.close();}
按预期打印出所有内容
第一个示例调用 cursor.next() 两次,每次循环将光标前进两次。尝试只调用一次,如下所示:
try {
while(cursor.hasNext()) {
myDoc = cursor.next();
System.out.println("Cursor Test" + myDoc.toJson());
try {
JSONObject object = new JSONObject(myDoc.toJson());
UserName.add((String) object.get("name"));
UserID.add((String) object.get("id"));
ProfilePic.add( (String) object.get("ProfilePic"));
} catch (JSONException e) {
e.printStackTrace();
}
}
} finally{cursor.close();}
我正在尝试遍历所有文档并解析值并将它们添加到它们自己的列表中。问题是,当我尝试解析并添加到列表时,准确地说,它会在中途提前停止。但是当我不添加所有额外代码来解析并添加到列表时,它会打印出所有代码 (4).
try {
while(cursor.hasNext()) {
System.out.println("Cursor Test" + cursor.next().toJson());
myDoc = cursor.next();
try {
JSONObject object = new JSONObject(myDoc.toJson());
UserName.add((String) object.get("name"));
UserID.add((String) object.get("id"));
ProfilePic.add( (String) object.get("ProfilePic"));
//System.out.println("USERID:" + UserID);
//System.out.println("ProfilePic:" + ProfilePic);
//System.out.println("USERNAME:" + UserName);
//System.out.println("Count: " + collectionCount);
} catch (JSONException e) {
e.printStackTrace();
}
}
} finally{cursor.close();}
只打印出两个
同时
try {
while(cursor.hasNext()) {
System.out.println("Cursor Test" + cursor.next().toJson());
} finally{cursor.close();}
按预期打印出所有内容
第一个示例调用 cursor.next() 两次,每次循环将光标前进两次。尝试只调用一次,如下所示:
try {
while(cursor.hasNext()) {
myDoc = cursor.next();
System.out.println("Cursor Test" + myDoc.toJson());
try {
JSONObject object = new JSONObject(myDoc.toJson());
UserName.add((String) object.get("name"));
UserID.add((String) object.get("id"));
ProfilePic.add( (String) object.get("ProfilePic"));
} catch (JSONException e) {
e.printStackTrace();
}
}
} finally{cursor.close();}