[MONGODB] $ 조회하여 MongoDB에서 $ 프로젝트
MONGODB$ 조회하여 MongoDB에서 $ 프로젝트
나는이 후에 내가 필요로하는 분야를 olny 선택 $ 프로젝트를 사용, 쿼리, 두 모델을 "결합"에 그 사용 $ 조회를 가지고 있지만, 내 $ 프로젝트는 객체 내가 필요로 더 많은 데이터를 포함 (user_detail)의 arrray을 제공합니다 . 나는 내 결과의 두 개의 필드 (scheduleStart 및 scheduleEnd)를합니다.
내 쿼리 :
User.aggregate([{
$match: {
storeKey: req.body.store,
}
},
{
$group: {
_id: {
id: "$_id",
name: "$name",
cpf: "$cpf",
phone: "$phone",
email: "$email",
birthday: "$birthday",
lastName: "$lastname"
},
totalServices: {
$sum: "$services"
},
}
},
{
$lookup: {
from: "schedules",
localField: "_id.phone",
foreignField: "customer.phone",
as: "user_detail"
}
},
{
$project: {
_id: 1,
name: 1,
name: 1,
cpf: 1,
phone: 1,
email: 1,
birthday: 1,
totalServices: 1,
totalValue: { $sum : "$user_detail.value" },
count: {
$sum: 1
},
user_detail: 1
}
},
쿼리의 결과 :
count: 1
totalServices: 0
totalValue: 73
user_detail: Array(2)
0:
...
paymentMethod: 0
paymentValue: "0"
scheduleDate: "2018-10-02"
scheduleEnd: "2018-10-02 08:40"
scheduleStart: "2018-10-02 08:20"
status: 3
store: "5b16cceb56a44e2f6cd0324b"
updated: "2018-11-27T13:30:21.116Z"
1:
...
paymentMethod: 0
paymentValue: "0"
scheduleDate: "2018-11-27"
scheduleEnd: "2018-11-27 00:13"
scheduleStart: "2018-11-27 00:03"
status: 2
store: "5b16cceb56a44e2f6cd0324b"
updated: "2018-11-27T19:33:39.498Z"
_id:
birthday: "1992-03-06"
email: "csantosgrossi@gmail.com"
id: "5bfed8bd70de7a383855f09e"
name: "Chris Santos G"
phone: "11969109995"
...
내가 필요 결과 :
count: 1
totalServices: 0
totalValue: 73
user_detail: Array(2)
0:
scheduleEnd: "2018-10-02 08:40"
scheduleStart: "2018-10-02 08:20"
1:
scheduleEnd: "2018-11-27 00:13"
scheduleStart: "2018-11-27 00:03"
_id:
birthday: "1992-03-06"
email: "csantosgrossi@gmail.com"
id: "5bfed8bd70de7a383855f09e"
name: "Chris Santos G"
phone: "11969109995"
...
어떻게 쿼리를 수행 할 수 있습니다?
해결법
-
==============================
1.당신은 $ 조회 파이프 라인 내에서 $ 프로젝트에 필드를 $ 조회 3.6 구문을 사용할 수 있습니다
당신은 $ 조회 파이프 라인 내에서 $ 프로젝트에 필드를 $ 조회 3.6 구문을 사용할 수 있습니다
User.aggregate([ { "$lookup": { "from": "schedules", "let": { "id": "$_id.phone" }, "pipeline": [ { "$match": { "$expr": { "$eq": ["$customer.phone", "$$id"] }}}, { "$project": { "scheduleStart": 1, "scheduleEnd": 1 }} ], "as": "user_detail" }} ])
from https://stackoverflow.com/questions/53710203/project-in-lookup-mongodb by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] $ 슬라이스 연산자를 사용하여 배열의 마지막 요소를 얻을 수 있습니다 (0) | 2020.01.25 |
---|---|
[MONGODB] MongoDB의 쉘에서 데이터베이스를 작성하지 (0) | 2020.01.18 |
[MONGODB] 몽구스 autoReconnect 옵션 (0) | 2020.01.18 |
[MONGODB] MongoDB를 시작으로 실패 - fassert 후 중단 *** () 실패 (0) | 2020.01.15 |
[MONGODB] 어떻게 MongoDB를은 SQL 주입 혼란을 피하기는 무엇입니까? (0) | 2020.01.13 |