pymongo 및 $ push가있는 Mongodb가 목록 정리를 수행합니다.

라파엘 카푸 초

dictMongoDB의 목록에 하나를 추가 하고 날짜별로 정렬하고 이전 항목을 잘라야합니다.

다음 코드는 MongoDB에서 직접 실행할 때 (robomongo 클라이언트 사용) 작업을 완벽하게 수행합니다.

db.products.update(
    { _id: ObjectId("549598b641ba00e6b7aacd45") },
    {
        $push: {
            prices: {
                $each: [{'d': ISODate("2015-01-13T01:13:00.201Z"), 'v': 105.3}],
                $sort: {'d': -1},
                $slice: -30
            }
        }
    }
)

그러나 PyMongo에서 작업을 다시 작성하고 실행하면 먼저 이전 배열을 지우고 새 배열 만 추가하고 하나의 레코드 만 남깁니다.

PyMongo 코드 :

self.db['products'].update(
    {'source_url': item['source_url']},
    {
        '$push': {
            'prices': {
                '$each': [{'d': datetime.utcnow(), 'v': 107.8}],
                # '$sort': {'d': -1},
                # '$slice': -30
            }
        }
    },
)

심지어 댓글을 달았 sort작업은 이전의 것들을 유지되지 않습니다.slicepush

이 프로세스는 스크래피 0.24.4 파이프 라인, PyMongo 버전 2.7.1, Mongo 버전 2.6.4 내에서 실행됩니다.


문제 해결 : find_and_modify모든 데이터가 손실되기 전에 다른 기능에서 사용 하고있었습니다.

A. Jesse Jiryu Davis

귀하의 코드는 PyMongo와 함께 작동합니다.

>>> db = MongoClient().test
>>> db.products.insert({'source_url': 'x'})
ObjectId('54ba45a6ca1ce9489f5778b2')
>>> from datetime import datetime
>>> db.products.update({'source_url': 'x'}, {'$push': {
            'prices': {
                '$each': [{'d': datetime.utcnow(), 'v': 107.8}]}}})
>>> len(db.products.find_one()['prices'])
1
>>> db.products.update({'source_url': 'x'}, {'$push': {
            'prices': {
                '$each': [{'d': datetime.utcnow(), 'v': 107.8}]}}})
>>> len(db.products.find_one()['prices'])
2

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

pyMongo 및 MongoEngine을 사용하여 색인이있는 MongoDb의 목록에서 객체를 제거 하시겠습니까?

분류에서Dev

정수 목록이 있습니다. 목록 항목에 대해 몇 가지 작업을 수행 한 다음 결과를 파일로 인쇄합니다.

분류에서Dev

Python에서 혼합 구조 (목록 및 정수)가있는 중첩 목록에서 요소 제거

분류에서Dev

Null이 아닌 값 및 선택적 "키"매개 변수가있는 사용 가능한 항목에 대해 AngularFire2의 목록을 쿼리합니다.

분류에서Dev

$ in 및 $ elemMatch를 MongoDB (PyMongo)와 올바르게 결합하는 방법

분류에서Dev

MongoDB는 쿼리 후 목록에 일치하는 키를 추가합니다.

분류에서Dev

pymongo에 대한 justOne 리미터를 설정하면 TypeError가 발생합니다.

분류에서Dev

PyMongo를 사용하여 MongoDB 문서에 항목 추가

분류에서Dev

정수 값 목록의 합계를 가져옵니다.

분류에서Dev

목록 <정수>에 대한 BinaryOpertor는 목록을 추가합니다

분류에서Dev

QML 및 PyQt가있는 항목 목록

분류에서Dev

목록의 홀수 및 짝수 테두리가 작동하지 않습니다.

분류에서Dev

사용자 정의 클래스가있는 목록 및 목록의 작업

분류에서Dev

Rails 관리자 및 전문가-관리자 만 관리자 대시 보드를 볼 수 있도록합니다.

분류에서Dev

정렬되지 않은 목록에서 선택할 때 가변 항목 수 (및 순서)를 가장 잘 처리하는 방법

분류에서Dev

(도식) 목록을 가져 와서 양수, 음수 및 0의 개수로 새 목록을 반환합니다.

분류에서Dev

목록보기 항목과 정수 값의 합계를 가져옵니다.

분류에서Dev

ORDER BY 및 GROUP BY가있는 SPARQL CONTRUCT 정렬 된 목록

분류에서Dev

Python : 길이가 다른 내부 목록이있는 목록 목록 정렬?

분류에서Dev

정렬 된 사전 및 목록 <> ()에 VS 2010에서 오류가 있습니다.

분류에서Dev

음이 아닌 정수 목록을 읽고 가장 큰 정수, 가장 작은 정수 및 모든 정수의 평균을 표시합니다.

분류에서Dev

Scala의 다른 목록 멤버를 기반으로 목록 생성 및 추가

분류에서Dev

변수가있는 PyMongo 쿼리가 결과를 반환하지 않음

분류에서Dev

가비지 수집은 목록 목록의 값을 처리합니다.

분류에서Dev

Python3 : 함수 및 while 루프를 사용하여 목록의 항목을 변경합니다. 내 코드가 제대로 실행되지 않는 이유는 무엇입니까?

분류에서Dev

GA : 목표 목록 API : webPropertyId = '~ all'쿼리가 http 400을 반환합니다. "webPropertyId"를 지정해야합니다.

분류에서Dev

max 및 lambda를 사용하여 목록 요소의 GCD를 찾는 데 문제가 있습니다.

분류에서Dev

함수 목록 : 인수 할 수있는 함수에만 추가 인수를 적용합니다.

분류에서Dev

std :: thread 및 this가있는 ctor 이니셜 라이저 목록

Related 관련 기사

  1. 1

    pyMongo 및 MongoEngine을 사용하여 색인이있는 MongoDb의 목록에서 객체를 제거 하시겠습니까?

  2. 2

    정수 목록이 있습니다. 목록 항목에 대해 몇 가지 작업을 수행 한 다음 결과를 파일로 인쇄합니다.

  3. 3

    Python에서 혼합 구조 (목록 및 정수)가있는 중첩 목록에서 요소 제거

  4. 4

    Null이 아닌 값 및 선택적 "키"매개 변수가있는 사용 가능한 항목에 대해 AngularFire2의 목록을 쿼리합니다.

  5. 5

    $ in 및 $ elemMatch를 MongoDB (PyMongo)와 올바르게 결합하는 방법

  6. 6

    MongoDB는 쿼리 후 목록에 일치하는 키를 추가합니다.

  7. 7

    pymongo에 대한 justOne 리미터를 설정하면 TypeError가 발생합니다.

  8. 8

    PyMongo를 사용하여 MongoDB 문서에 항목 추가

  9. 9

    정수 값 목록의 합계를 가져옵니다.

  10. 10

    목록 <정수>에 대한 BinaryOpertor는 목록을 추가합니다

  11. 11

    QML 및 PyQt가있는 항목 목록

  12. 12

    목록의 홀수 및 짝수 테두리가 작동하지 않습니다.

  13. 13

    사용자 정의 클래스가있는 목록 및 목록의 작업

  14. 14

    Rails 관리자 및 전문가-관리자 만 관리자 대시 보드를 볼 수 있도록합니다.

  15. 15

    정렬되지 않은 목록에서 선택할 때 가변 항목 수 (및 순서)를 가장 잘 처리하는 방법

  16. 16

    (도식) 목록을 가져 와서 양수, 음수 및 0의 개수로 새 목록을 반환합니다.

  17. 17

    목록보기 항목과 정수 값의 합계를 가져옵니다.

  18. 18

    ORDER BY 및 GROUP BY가있는 SPARQL CONTRUCT 정렬 된 목록

  19. 19

    Python : 길이가 다른 내부 목록이있는 목록 목록 정렬?

  20. 20

    정렬 된 사전 및 목록 <> ()에 VS 2010에서 오류가 있습니다.

  21. 21

    음이 아닌 정수 목록을 읽고 가장 큰 정수, 가장 작은 정수 및 모든 정수의 평균을 표시합니다.

  22. 22

    Scala의 다른 목록 멤버를 기반으로 목록 생성 및 추가

  23. 23

    변수가있는 PyMongo 쿼리가 결과를 반환하지 않음

  24. 24

    가비지 수집은 목록 목록의 값을 처리합니다.

  25. 25

    Python3 : 함수 및 while 루프를 사용하여 목록의 항목을 변경합니다. 내 코드가 제대로 실행되지 않는 이유는 무엇입니까?

  26. 26

    GA : 목표 목록 API : webPropertyId = '~ all'쿼리가 http 400을 반환합니다. "webPropertyId"를 지정해야합니다.

  27. 27

    max 및 lambda를 사용하여 목록 요소의 GCD를 찾는 데 문제가 있습니다.

  28. 28

    함수 목록 : 인수 할 수있는 함수에만 추가 인수를 적용합니다.

  29. 29

    std :: thread 및 this가있는 ctor 이니셜 라이저 목록

뜨겁다태그

보관