mongodb에서 중첩 컬렉션을 사용하고 있습니다. angularjs를 통해 mongodb에서 모든 데이터를 가져오고 있습니다.
내 코드는 아래와 같습니다.
$http.get('/Unitget').then(function (response) {
UnitDetails = $scope.UnitDetails = response.data;
UnitDetails.forEach(function (element) {
var c = element.Beds_Details; // test purpose
type1_Bed += element.Beds_Details[0].type1_Bed ;
type2_Bed += element.Beds_Details[0].type2_Bed ;
type3_Bed += element.Beds_Details[0].type3_Bed ;
type4_Bed += element.Beds_Details[0].type4_Bed ;
type5_Bed += element.Beds_Details[0].type5_Bed ;
}
}
그러나 "[0]" 을 element.Beds_Details[0].type1_Bed
제거하면 값이 표시되지 않고 표시 됩니다. 내가 할당하는 경우 Beds_Details를 다른 변수로는 개체로 제대로 할당된다.undefined
내 컬렉션의 샘플 기록은 다음과 같습니다.
"UnitId": "59225fd86ea6863028aba8b1", //unique id
"UnitName": "Hospital",
"UnitIcon": "./upload/file-1493206621849.png",
"FloorId": "592254b16ea6863028aba7e2", // unique id of another collection
"Material_Stream_Flow_Details": [
{
"Stream_Flow_DetailsID": "3",
"fa": "590042c06ea6863028aba777",
"fb": "590042c06ea6863028aba777",
"fc": "590042c06ea6863028aba777",
"fd": "590042c06ea6863028aba777",
"fe": "590042c06ea6863028aba777",
"ff": "590042c06ea6863028aba777",
"_id": ObjectId("59006a8d6ea6863028aba8cb")
}
],
"Destination_Details": [
{
"Elevator_ID": "2",
"Elevator": "590042c06ea6863028aba777",
"One_way": 42.6,
"Round_Trip": 21.3,
"_id": ObjectId("59006a8d6ea6863028aba8cc")
}
],
"Beds_Details": [
{
"Beds_DetailsID": "1",
"type1_Bed": 0,
"type2_Bed": 0,
"type3_Bed": 0,
"type4_Bed": 0,
"type5_Bed": 0,
"type6_Bed": 0,
"_id": ObjectId("59006a8d6ea6863028aba8cd")
}
]
중첩 된 컬렉션에서 값을 가져 오는 방법.
당신은 반복 할 수있는 Beds_Details
배열을하고 밀어 key
와 values
다른 array.Please으로 귀하의 요구 사항에 따라 배열을 수정합니다. 아래 스키마를 사용하여 새 개체를 만들고 있습니다.
{
type: key,
value: value
}
$.each
반복을 위해 JQuery 메서드를 사용하고 있습니다. Angular에는 비슷한 방법이 있습니다.
var arr = [];
angular.forEach(json, function(value, key) {
arr.push({
type: key,
value: value
});
});
데모 https://jsfiddle.net/sumitridhal/j3m2h4r0/6/
JS
var jsonObj ={ "UnitId": "59225fd86ea6863028aba8b1",
"UnitName": "Hospital",
"UnitIcon": "./upload/file-1493206621849.png",
"FloorId": "592254b16ea6863028aba7e2",
"Material_Stream_Flow_Details": [
{
"Stream_Flow_DetailsID": "3",
"fa": "590042c06ea6863028aba777",
"fb": "590042c06ea6863028aba777",
"fc": "590042c06ea6863028aba777",
"fd": "590042c06ea6863028aba777",
"fe": "590042c06ea6863028aba777",
"ff": "590042c06ea6863028aba777"
}
],
"Destination_Details": [
{
"Elevator_ID": "2",
"Elevator": "590042c06ea6863028aba777",
"One_way": 42.6,
"Round_Trip": 21.3
}
],
"Beds_Details": [
{
"Beds_DetailsID": "1",
"type1_Bed": 0,
"type2_Bed": 0,
"type3_Bed": 0,
"type4_Bed": 0,
"type5_Bed": 0,
"type6_Bed": 0,
"_id": "59006a8d6ea6863028aba8cd"
}
]};
let json = jsonObj.Beds_Details[0];
delete json['Beds_DetailsID'];
delete json['_id']; // Removes Beds_DetailsID & _id
var arr = [];
$.each(json, function(key, value){
arr.push({
type: key,
value: value
});
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다