![](/img/trans.png)
[英]How can I retrieve all values for a column key in a multidimensional ArrayTable?
[英]How can I retrieve all the values in a column in mongo db into a ArrayList?
這是我存儲在mongo db中的數據的值。 如何獲取“ HomeTown”的所有數據並將其存儲到列表中? 我的列表將包含AA,AA,BB,BB等。我想使用該數組列表為每個故鄉創建一個for循環。
樣本mongo數據
[{ "_id" : { "$oid" : "4ceb753a70fdf877ef5113ca"} , "HomeTown" : "AA" ,
"PhoneNumber" : { "CustName" : "xxx" , "Number" : "3403290"},
"MobileNumber" : { "CustName" : "yyy" , "Number" : "9323304302"}}]
[{ "_id" : { "$oid" : "4ceb753a70fdf877ef5113ca"} , "HomeTown" : "AA" ,
"PhoneNumber" : { "CustName" : "xxx" , "Number" : "3403290"},
"MobileNumber" : { "CustName" : "yyy" , "Number" : "9323304302"}}]
[{ "_id" : { "$oid" : "4ceb753a70fdf877ef5113ca"} , "HomeTown" : "BB" ,
"PhoneNumber" : { "CustName" : "xxx" , "Number" : "3403290"},
"MobileNumber" : { "CustName" : "yyy" , "Number" : "9323304302"}}]
[{ "_id" : { "$oid" : "4ceb753a70fdf877ef5113ca"} , "HomeTown" : "BB" ,
"PhoneNumber" : { "CustName" : "xxx" , "Number" : "3403290"},
"MobileNumber" : { "CustName" : "yyy" , "Number" : "9323304302"}}]
如何將Java中所有“ HomeTown”的值都放入一個數組中? 我正在嘗試使用HomeTown名稱創建一個for循環。 我目前正在通過Spring Boot使用mongodb依賴關系。 我不確定如何在我的Java中實現mongodb以使用mongo db。
嘗試/問題
我能夠使用以下代碼檢索列表中的mongodb值。 我正在嘗試將此列表轉換為arraylist。
public List<AppPortModel> getAppPortList() {
List<ApServerModel> objLst = mongoOperations.findAll(ApServerModel.class);
String[] apServerArray = new String[objLst.size()];
for(int i = 0; i < objLst.size(); i++) {
apServerArray[i] = objLst.get(i);
}
objLst.get(i)上的錯誤
Type mismatch: cannot convert from ApServerModel to String
在Sagar示例之后嘗試#2
@Autowired
MongoOperations mongoOperations;
MongoCollection<ApServerModel> myCollection = **mongoOperations.getCollection("apAllCustomer");**
List<ApServerModel> result = myCollection.find().into(new ArrayList<>());
mongoOperations.getCollection上的錯誤
Type mismatch: cannot convert from DBCollection to MongoCollection<ApServerModel>
看起來您正在使用mongo 3.x驅動程序。您需要使用類似這樣的東西。
MongoClient mongoClient = new MongoClient();
MongoDatabase db = mongoClient.getDatabase("mkoydb");
MongoCollection<Document> myCollection = db.getCollection("apAllCustomer");
List<Document> result = myCollection.find().into(new ArrayList<>());
解決嘗試1:
public List<AppPortModel> getAppPortList() {
List<ApServerModel> objLst = mongoOperations.findAll(ApServerModel.class);
String[] apServerArray = new String[objLst.size()];
for(int i = 0; i < objLst.size(); i++) {
apServerArray[i] = objLst.get(i).getHomeTown();
}
解決嘗試2:
DBCollection dbCollection = mongoOperations.findAll(AppServreModel.class, "apAllCustomer");
您可以調用toArray()
,它直觀地返回List<DBObject>
。
List<DBObject> myList = null;
DBCursor myCursor=myCollection.find(new BasicDBObject(),"HomeTown");
myList = myCursor.toArray();
如果您使用的Java驅動程序的版本為3.0及更高版本,則也可以
collection.find().projection(Projections.include("HomeTown"));
您可以使用投影僅檢索必填字段。
db.apAllCustomer.find( ..., { HomeTown: 1 } );
在Java中,它取決於您使用的API。 有關Spring數據,請參見以下內容:
MongoDB-Java:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.