MongoDB:按日期查找嵌套在对象字段中而不使用$或

时间:2017-11-20 13:22:21

标签: mongodb mongodb-query

我的示例文档:

{
    name  : 'ABC123',
    active: false,
    meta  : {
        createdBy: 'user@gmail.com',
        created  : ISODate("2017-11-20T13:04:15.757Z"), // 13:04
        editedBy : 'user2@gmail.com',
        edited   : ISODate("2017-11-20T13:06:06.033Z"), // 13:06
        removedBy: 'user@gmail.com',
        removed  : ISODate("2017-11-20T13:09:11.033Z")  // 13:09
    }
}

如何查询所有文档,其中包含:

  • meta.created
  • meta.updated
  • meta.removed

字段$gt比我指定的日期(没有$or )?

我现在拥有的:

const d = ISODate("2017-11-20T13:00:00.033Z"); // 13:00
db
.collection('example')
.find(
    { 
        $or: ['meta.removed', 'meta.edited', 'meta.created'].map(m => { 
            return { [m]: { $gt: d } } 
        })
    } 
);

我尝试过但没有工作:

const d = ISODate("2017-11-20T13:09:11.033Z"); // 13:00
db
.collection('example')
.find(
    { 
        'meta.$': { $gt: d }
    } 
);

0 个答案:

没有答案