如何在mongodb的filter中使用自己的元素筛选文档
我有一个场景,我需要从同一个集合中获取“CreatedDatetime”大于“Deal.SourceStartDatetime”的所有文档如何在mongodb的filter中使用自己的元素筛选文档,mongodb,Mongodb,我有一个场景,我需要从同一个集合中获取“CreatedDatetime”大于“Deal.SourceStartDatetime”的所有文档 { "DealNumber": "AAAAAA", "CreatedDatetime": "2021-01-25T21:14:39.670Z", "BatchIdentifier": "ebe4d466-77777-4b8b-
{
"DealNumber": "AAAAAA",
"CreatedDatetime": "2021-01-25T21:14:39.670Z",
"BatchIdentifier": "ebe4d466-77777-4b8b-b965-22ebf04de85e",
"EventName": "DEAL_Insert",
"LastUpdateDatetime": "2021-01-25T21:14:39.670Z",
"MessageIdentifier": "5fcfb89d-3cf6-57e4-9d5c-e0141700852b",
"SourceDeleteIndicator": "N",
"TransactionIdentifier": "a80cdc54-12d7-434e-bc03-5d9c2b75b1f8",
"DealLastUpdateDatetime": "2021-01-20T17:51:36.644Z",
"Deal": {
"AgreementName": "xxxx",
"SourceEndDatetime": "2021-01-20T17:51:36.644Z"
"SourceStartDatetime": "2021-01-20T17:51:36.644Z"
}
}
{
"DealNumber": "BBBBBB",
"CreatedDatetime": "2021-01-20T17:51:36.644Z",
"BatchIdentifier": "ebe4d466-77777-4b8b-b965-22ebf04de85e",
"EventName": "DEAL_Insert",
"LastUpdateDatetime": "2021-01-25T21:14:39.670Z",
"MessageIdentifier": "5fcfb89d-3cf6-57e4-9d5c-e0141700852b",
"SourceDeleteIndicator": "N",
"TransactionIdentifier": "a80cdc54-12d7-434e-bc03-5d9c2b75b1f8",
"DealLastUpdateDatetime": "2021-01-20T17:51:36.644Z",
"Deal": {
"AgreementName": "xxxx",
"SourceEndDatetime": "2021-01-20T17:51:36.644Z"
"SourceStartDatetime": "2021-01-20T17:51:36.644Z"
}
}
示例:下面是来自同一集合的两个文档
{
"DealNumber": "AAAAAA",
"CreatedDatetime": "2021-01-25T21:14:39.670Z",
"BatchIdentifier": "ebe4d466-77777-4b8b-b965-22ebf04de85e",
"EventName": "DEAL_Insert",
"LastUpdateDatetime": "2021-01-25T21:14:39.670Z",
"MessageIdentifier": "5fcfb89d-3cf6-57e4-9d5c-e0141700852b",
"SourceDeleteIndicator": "N",
"TransactionIdentifier": "a80cdc54-12d7-434e-bc03-5d9c2b75b1f8",
"DealLastUpdateDatetime": "2021-01-20T17:51:36.644Z",
"Deal": {
"AgreementName": "xxxx",
"SourceEndDatetime": "2021-01-20T17:51:36.644Z"
"SourceStartDatetime": "2021-01-20T17:51:36.644Z"
}
}
{
"DealNumber": "BBBBBB",
"CreatedDatetime": "2021-01-20T17:51:36.644Z",
"BatchIdentifier": "ebe4d466-77777-4b8b-b965-22ebf04de85e",
"EventName": "DEAL_Insert",
"LastUpdateDatetime": "2021-01-25T21:14:39.670Z",
"MessageIdentifier": "5fcfb89d-3cf6-57e4-9d5c-e0141700852b",
"SourceDeleteIndicator": "N",
"TransactionIdentifier": "a80cdc54-12d7-434e-bc03-5d9c2b75b1f8",
"DealLastUpdateDatetime": "2021-01-20T17:51:36.644Z",
"Deal": {
"AgreementName": "xxxx",
"SourceEndDatetime": "2021-01-20T17:51:36.644Z"
"SourceStartDatetime": "2021-01-20T17:51:36.644Z"
}
}
您可以使用
$expr
和$gt
db.collection.find({
$expr: {
$gt: [
{$toDate: "$CreatedDatetime"},
{$toDate: "$Deal.SourceStartDatetime"}
]
}
})
工作有帮助吗?