2017-09-27 5 views
0

nodeJS 및 JSon의 초보자 때문에 2 일 동안 좌절감을 느낍니다. 내 영어로 나는 하위 데이터에서 데이터를 검색하고 결과를 브라우저에 입력하는 경우가 있습니다. 이 내 코드입니다 :subArray의 기준으로 검색하고 nodeJS 및 NeDb를 사용하여 결과 얻기

var doc = [{ 
    "name": "yadi", 
    "hobby": [{ 
    "home": "watch news", 
    "bed_room": "read comics" 
     }, { 
    "home": "watch ufc", 
    "bed_room": "eat candy" 
     }] 
}, 
    "name": "dony", 
    "hobby": [{ 
    "home": "sleep", 
    "bed_room": "eat dog food" 
     }, { 
    "home": "watch disney", 
    "bed_room": "breathing" 
     }] 
}]; 
var db = new Nedb();db.insert(doc, function(err, newDoc) { 
console.log(JSON.stringify(newDoc, null, ' ')); 
//search data 
db.find({ 
    "name": "yadi" 
    }, { 
    "hobby": { 
     $elemMatch: { 
     "home": "watch news" 
     } 
    } 
    }, function(err, docs) { 

    console.log ("RESULT "+JSON.stringify(docs, null, ' ')); 

}) 
}) 

난이 결과 데이터를 얻을 수있는 방법?

"hobby": [{ 
    "home": "watch news", 
    "bed_room": "read comics" 
     }] 
+0

어떤 문제가 있습니까? 어떤 오류? – sidgate

+0

특수한 기준으로 데이터 하위 배열을 가져올 수 없습니다. –

+0

해결책을 찾았습니까? 내가 관심. – Gilsdav

답변

0

다음과 같아야합니다. 당신은 기본적으로 여기 저기에있는 괄호와 프로젝션에 "_id": 0을 제외하고는 많은 것을 놓치지 않았습니다.

var doc = [{ 
    "name": "yadi", 
    "hobby": [{ 
     "home": "watch news", 
     "bed_room": "read comics" 
    }, { 
     "home": "watch ufc", 
     "bed_room": "eat candy" 
    }] 
}, { 
    "name": "dony", 
    "hobby": [{ 
     "home": "sleep", 
     "bed_room": "eat dog food" 
    }, { 
     "home": "watch disney", 
     "bed_room": "breathing" 
    }] 
}]; 

var db = new Nedb(); 
db.insert(doc, function(err, newDoc) { 
    console.log(JSON.stringify(newDoc, null, ' ')); 
}); 

//search data 
db.find({ 
    "name": "yadi" 
}, { 
    "_id": 0, // exclude _id 
    "hobby": { 
     $elemMatch: { 
      "home": "watch news" 
     } 
    } 
}, function(err, docs) { 
    console.log ("RESULT "+JSON.stringify(docs, null, ' ')); 
});