mongodb фильтрует объекты между датами с помощью pymongo - PullRequest
0 голосов
/ 19 июня 2020

Ниже представлена ​​структура документа моей коллекции в MongoDB.

Использование pymon go Я хочу фильтровать между документами, используя диапазон дат для ключа creation_date, который находится внутри ключа record_status.

Вот структура документа:

{
    "_id" : ObjectId("5b8a199cf4a98b075490bb47"),
    "Pls_Customer_Id" : "C1810151",
    "FirstName" : "SCHNEIDER ELECTRIC INDIA PVT LTD",
    "LastName" : "SCHNEIDER ELECTRIC INDIA PVT LTD",
    "Address1" : "DELHI",
    "State" : "DELHI",
    "MobileNumber" : "989898989898",
    "DeletedFlag" : false,
    "Country" : "India",
    "record_status" : {
        "created_user" : "uploadBatchProgram",
        "creation_date" : ISODate("2018-09-01T04:46:20.055Z")
    },
    "PoliciesRef" : [ 
        ObjectId("5b8a199cf4a98b075490bb45")
    ],
    "__v" : 0,
    "customerType" : "Regular"
}

1 Ответ

0 голосов
/ 19 июня 2020

Если я правильно понимаю, вы хотите отфильтровать документы между диапазонами дат from и to record_status.creation_date.

Ниже приведен код необходимого фильтра.

from pymongo import MongoClient
from datetime import datetime

from_date_range = datetime(2020, 1, 1)  # Format -> (yyyy, mm, dd)
to_date_range = datetime(2020, 5, 20)  # Format -> (yyyy, mm, dd)

collection = MongoClient()["<DB-NAME>"]["<COLLECTION-NAME>"]

for cursor in collection.find({
    "record_status.creation_date": {
        "$gte": from_date_range,
        "$lt": to_date_range
    }
}):
    print(cursor)
...