단일 쿼리에서 (또는 가장 빠른 방법으로) 하나의 컬렉션에서 값 배열을 가져올 수 있으며 그 결과로 문서 묶음을 얻을 수 있습니까?여러 컬렉션의 필드에 대한 Mongo DB 쿼리
collection2.find({bands: 'the killers'}, {eventId: 1}).toArray(function(err, docs) {
if(docs !== []){
//get all the event ID's
var eventIds = [];
for(var i = 0; i < docs.length; i++){
eventIds.push(docs[i].eventId);
}
//make a search with all ID's
collection.find({ _id: {$in: eventIds} }).toArray(function(err, docs){
res.send(docs);
});
}
});
그래서 여기에 살인자가 경기하고있는 모든 이벤트를 찾은 다음 모든 이벤트 ID를 가져 와서 전체 이벤트 정보를 가져옵니다.
밴드 목록이 상당히 커질 수 있으므로 밴드를 이벤트 정보와 결합하고 싶지 않았습니다. 또한 {bands : 0}과 같이 특정 필드를 무시할 수 있음을 알고 있습니다. 이는 밴드 배열이 큰 경우 검색어의 속도에 영향을 줍니까?
예 물론 : – kaxi1993
데이터를 관계형 방식으로 사용하려면 왜 관계형 데이터베이스를 사용하지 않습니까? MongoDB를 사용하고 싶다면 좋은 스키마 디자인을 배우는 데 약간의 시간을 할애해야만 MongoDB의 강점을 지속적으로 활용할 수 있습니다. –