Mongodb 查找或查询具有逻辑条件和

Mongodb 查找或查询具有逻辑条件和,mongodb,Mongodb,我的Mongo数据是这样的 { "_id" : "5a5ffef0869422169c7aa01b", "email" : "example@gmail.com", "checkin" : "2018-2-28 5:12", "checkout" : "2018-2-28 6:12", } 我有两个阵列: checkin:['2018-2-28 5:12'、'2018-2-28 5:13'、'2018-2-28 5:14'] checkout:['2018-2

我的Mongo数据是这样的

{
    "_id" : "5a5ffef0869422169c7aa01b",
    "email" : "example@gmail.com", 
    "checkin" : "2018-2-28 5:12",
    "checkout" : "2018-2-28 6:12",
}
我有两个阵列:

  • checkin:['2018-2-28 5:12'、'2018-2-28 5:13'、'2018-2-28 5:14']
  • checkout:['2018-2-28 6:12'、'2018-2-28 6:13'、'2018-2-28 6:14']
  • 以及我的查询以查找
    电子邮件

    db.getCollection('test').find({checkin : {$in: checkin}}, {"email": 1, "_id": 0})
    
    我得到了结果

    example@gmail.com test@gmail.com
    
    现在,我有个问题。我想找到
    电子邮件
    got
    checkin
    checkout
    。 这意味着在
    签入-签入数组
    签出-签出数组

    我尝试了这个查询,但不确定

    db.getCollection('test').find({checkin : {$in: checkin}},{checkout : {$in: checkout}}, {"email": 1, "_id": 0})
    
    如果“签入”和“签出”两个数组都存在,此qyery将返回电子邮件。 以防您想检查可以使用的数组的大小

    'checkin':{ $size:{ $gt:1 } } 
    
    尝试
    db.getCollection('test')。查找({checkin:{$in:checkin},签出:{$in:checkout},{“email”:1,“\u id”:0})
    'checkin':{ $size:{ $gt:1 } }