0
저는 MongoDB와 Mongoose를 처음 접했습니다. 현재 클라이언트에있는 계정 배열을 포함하는 클라이언트 컬렉션이있는 응용 프로그램을 구축하고 있습니다.다중 서브 문서를 기반으로하는 MongoDB/Mongoose 쿼리
나는 클라이언트에있는 계정의 특성을 기반으로 컬렉션을 쿼리하고 싶습니다.
- 하여 clientType : "표준"
- 는 두 개의 계정이 있습니다
- ACCOUNTTYPE "FML을", 밸런스 : $ 하였다 3000
- ACCOUNTTYPE 예를 들어, I는 클라이언트를 반환해야 "OMG", 밸런스 : $ LT 아래 3000
는 샘플 문서는 다음과 같습니다
,{
clientDetails: {
cardNumber: "",
firstName: "Bob",
lastName: "Dole",
clientType: "Standard"
},
accounts: [
{
accountNumber: "123",
accountType: "FML",
balance: 4000.00
},
{
accountNumber: "234",
accountType: "OMG",
balance: 2000
}
]
}
는 지금까지, 나는 단지 accountTypes [ "FML", "OMG]로하여 clientType의 클라이언트"표준 "을 얻을 수있는 쿼리를 작성하는하지만 지정하는 방법을 알아낼 수있는 방법을 알아 냈어요 특정 accountTypes의 잔액 조건
ClientModel
.find({
"clientDetails.clientType": "Standard",
"accounts.accountType": { $all ["FML", "OMG"]
})
.then(
function(){ //etc..},
function(err){ //etc...}
);
이 방법은 훌륭했습니다. 고맙습니다! 나는 많은 고객이 있을지도 모른다고 언급하는 것을 잊었다. 해당 조건과 일치하지 않는 계정을 필터링 할 수 있습니까? – chrisk
Np. 나는 당신이 정규적인 질문으로 할 수 있다고 생각하지 않는다. 집계 파이프 라인을 사용해야 할 수도 있습니다. 도움이되는지 확인하십시오. http://stackoverflow.com/questions/15117030/how-to-filter-array-in-subdocument-with-mongodb – Veeram
도움을 주셔서 감사합니다. 나는 한번 살펴 보겠다. – chrisk