MongoDB : 배열 길이가 2보다 큰 문서 가져 오기

McFly

이 mongoDb / mongoose 쿼리를 수정하기 위해 도움을 요청합니다. 해야합니다 :

  • '호스트'의 배열 요소 수량 평가

  • 2 개 이상의 요소가있는 문서 만 배열로 반환

  • 마지막으로 쿼리는 위의 매개 변수를 따르는 모든 필드가있는 DB의 모든 문서 / 객체를 반환해야합니다.

샘플 문서 :

{
    "_id" : ObjectId("XXXXXXXXX"),
    "content" : "ASdkJAHKDA",
    "time" : ISODate("2020-01-24T17:20:00.023Z"),
    "sentEmail" : {
        "host" : [ 
            "smtp.XXX", 
            "smtp.YYYY", 
        ],
        "status" : false,
        "date" : ISODate("2020-01-27T14:36:08.311Z",
}

시도 1 :

db.getCollection('emails').find({'sentEmail.status': false}, {$where:'sentEmail.host >= 2'})

문제점 : 모든 필드를 반환하지 않고 ID 만 반환

시도 2 :

db.getCollection('emails').find({'sentEmail.host.1': {$exists:true}, 'sentEmail.status': false})

문제 : 발견 된 첫 번째 개체 만 반환합니다.

whoami-fakeFaceTrueSoul

이것을 시도 할 수 있습니다.

db.getCollection('emails').find({$expr :{$and : [{$eq :['$sentEmail.status', false]},
                                            {$gte: [{$size:'$sentEmail.host'},2]}]}})

수집 데이터 :

/* 1 */
{
    "_id" : ObjectId("5e2f26ead02e05b6948bc302"),
    "content" : "ASdkJAHKDA",
    "time" : ISODate("2020-01-24T17:20:00.023Z"),
    "sentEmail" : {
        "host" : [ 
            "smtp.XXX", 
            "smtp.YYYY"
        ],
        "status" : false,
        "date" : ISODate("2020-01-27T14:36:08.311Z")
    }
}

/* 2 */
{
    "_id" : ObjectId("5e2f26f1d02e05b6948bc3b5"),
    "content" : "ASdkJAHKDA",
    "time" : ISODate("2020-01-24T17:20:00.023Z"),
    "sentEmail" : {
        "host" : [ 
            "smtp.YYYY"
        ],
        "status" : false,
        "date" : ISODate("2020-01-27T14:36:08.311Z")
    }
}

/* 3 */
{
    "_id" : ObjectId("5e2f26ffd02e05b6948bc4c8"),
    "content" : "ASdkJAHKDA",
    "time" : ISODate("2020-01-24T17:20:00.023Z"),
    "sentEmail" : {
        "host" : [ 
            "smtp.XXX", 
            "smtp.YYYY", 
            "smtp.ZZZZ"
        ],
        "status" : false,
        "date" : ISODate("2020-01-27T14:36:08.311Z")
    }
}

/* 4 */
{
    "_id" : ObjectId("5e2f2bd2d02e05b6948c2c58"),
    "content" : "ASdkJAHKDA",
    "time" : ISODate("2020-01-24T17:20:00.023Z"),
    "sentEmail" : {
        "host" : [ 
            "smtp.XXX", 
            "smtp.YYYY", 
            "smtp.ZZZZ"
        ],
        "status" : true,
        "date" : ISODate("2020-01-27T14:36:08.311Z")
    }
}

결과 :

/* 1 */
{
    "_id" : ObjectId("5e2f26ead02e05b6948bc302"),
    "content" : "ASdkJAHKDA",
    "time" : ISODate("2020-01-24T17:20:00.023Z"),
    "sentEmail" : {
        "host" : [ 
            "smtp.XXX", 
            "smtp.YYYY"
        ],
        "status" : false,
        "date" : ISODate("2020-01-27T14:36:08.311Z")
    }
}

/* 2 */
{
    "_id" : ObjectId("5e2f26ffd02e05b6948bc4c8"),
    "content" : "ASdkJAHKDA",
    "time" : ISODate("2020-01-24T17:20:00.023Z"),
    "sentEmail" : {
        "host" : [ 
            "smtp.XXX", 
            "smtp.YYYY", 
            "smtp.ZZZZ"
        ],
        "status" : false,
        "date" : ISODate("2020-01-27T14:36:08.311Z")
    }
}

경우에 문서를 반환하지 않은 "_id" : ObjectId("5e2f26f1d02e05b6948bc3b5")크기 때문에 sentEmail.host < 2&&가 "_id" : ObjectId("5e2f2bd2d02e05b6948c2c58")가가 원인 반환되지 않습니다 sentEmail.status: true.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

mongodb에서 배열 크기가 1보다 큰 문서를 찾는 방법

분류에서Dev

mongo db에서 날짜가 지금보다 큰 문서 내부 배열의 모든 요소 가져 오기

분류에서Dev

문서의 다른 속성에 배열이 포함 된 mongodb의 총 배열 항목 가져 오기

분류에서Dev

mongodb의 문서에서 키 / 값 쌍 배열 가져 오기

분류에서Dev

한 클래스에서 다른 클래스로 배열 길이 가져 오기

분류에서Dev

다중 문자열 배열에서 문자 가져 오기

분류에서Dev

javascript 및 angularjs에서 길이가 0보다 큰 배열 수 확인

분류에서Dev

배열 정보에서 분리 된 문자열 가져 오기

분류에서Dev

변수 배열 자바에서 문자열 길이 가져 오기

분류에서Dev

다차원 배열에서 문자열 가져 오기

분류에서Dev

타임 스탬프가 24 시간보다 큰 문서 가져 오기

분류에서Dev

mongodb의 문서에서 일치하는 배열 요소 가져 오기

분류에서Dev

Mongodb : $ march, $ project 및 $ filter 배열을 사용하여 문서 만 다시 가져 오기

분류에서Dev

C에서 부호없는 문자 배열의 길이 가져 오기

분류에서Dev

KEY가 X보다 큰 문서를 가져 오는 방법

분류에서Dev

JSON 배열의 길이 가져 오기

분류에서Dev

Linq를 사용하여 길이가 같은 배열에서 다른 요소의 인덱스 가져 오기

분류에서Dev

MongoDB 연결 문자열 가져 오기

분류에서Dev

2 진에서 10 진으로의 변환기에 1보다 큰 숫자를 입력하면 startIndex는 문자열 길이보다 클 수 없다는 오류가 발생합니다.

분류에서Dev

배열의 길이가 1보다 큰 경우 실행

분류에서Dev

MongoDB에서 문서 크기보다 큰 배열을 찾는 방법

분류에서Dev

jq 배열이 길이가 실제 배열 항목 수보다 큰 이유

분류에서Dev

MongoDB에서 인덱스로 배열 항목 가져 오기

분류에서Dev

NumPy 배열에서 가장 큰 영역의 인덱스 가져 오기

분류에서Dev

파이썬에서 배열 내보내기 및 가져 오기

분류에서Dev

문자열 중간에서 가변 길이 부분 문자열 가져 오기

분류에서Dev

yii2 한 모델에서 데이터 배열 가져 오기 및 다른 모델보기에 나열

분류에서Dev

MongoDB를 사용하는 Laravel 5 Eloquent-문서에서 열 이름 배열 가져 오기

분류에서Dev

배열과 문자열 사이에서 가장 큰 수 찾기

Related 관련 기사

  1. 1

    mongodb에서 배열 크기가 1보다 큰 문서를 찾는 방법

  2. 2

    mongo db에서 날짜가 지금보다 큰 문서 내부 배열의 모든 요소 가져 오기

  3. 3

    문서의 다른 속성에 배열이 포함 된 mongodb의 총 배열 항목 가져 오기

  4. 4

    mongodb의 문서에서 키 / 값 쌍 배열 가져 오기

  5. 5

    한 클래스에서 다른 클래스로 배열 길이 가져 오기

  6. 6

    다중 문자열 배열에서 문자 가져 오기

  7. 7

    javascript 및 angularjs에서 길이가 0보다 큰 배열 수 확인

  8. 8

    배열 정보에서 분리 된 문자열 가져 오기

  9. 9

    변수 배열 자바에서 문자열 길이 가져 오기

  10. 10

    다차원 배열에서 문자열 가져 오기

  11. 11

    타임 스탬프가 24 시간보다 큰 문서 가져 오기

  12. 12

    mongodb의 문서에서 일치하는 배열 요소 가져 오기

  13. 13

    Mongodb : $ march, $ project 및 $ filter 배열을 사용하여 문서 만 다시 가져 오기

  14. 14

    C에서 부호없는 문자 배열의 길이 가져 오기

  15. 15

    KEY가 X보다 큰 문서를 가져 오는 방법

  16. 16

    JSON 배열의 길이 가져 오기

  17. 17

    Linq를 사용하여 길이가 같은 배열에서 다른 요소의 인덱스 가져 오기

  18. 18

    MongoDB 연결 문자열 가져 오기

  19. 19

    2 진에서 10 진으로의 변환기에 1보다 큰 숫자를 입력하면 startIndex는 문자열 길이보다 클 수 없다는 오류가 발생합니다.

  20. 20

    배열의 길이가 1보다 큰 경우 실행

  21. 21

    MongoDB에서 문서 크기보다 큰 배열을 찾는 방법

  22. 22

    jq 배열이 길이가 실제 배열 항목 수보다 큰 이유

  23. 23

    MongoDB에서 인덱스로 배열 항목 가져 오기

  24. 24

    NumPy 배열에서 가장 큰 영역의 인덱스 가져 오기

  25. 25

    파이썬에서 배열 내보내기 및 가져 오기

  26. 26

    문자열 중간에서 가변 길이 부분 문자열 가져 오기

  27. 27

    yii2 한 모델에서 데이터 배열 가져 오기 및 다른 모델보기에 나열

  28. 28

    MongoDB를 사용하는 Laravel 5 Eloquent-문서에서 열 이름 배열 가져 오기

  29. 29

    배열과 문자열 사이에서 가장 큰 수 찾기

뜨겁다태그

보관