我的Mongo数据是这样的
checkin : ['2018-2-28 5:12','2018-2-28 5:13','2018-2-28 5:14']
我有2个阵列:
checkout : ['2018-2-28 6:12','2018-2-28 6:13','2018-2-28 6:14']
email
我的查询是db.getCollection('test').find({checkin : {$in: checkin}}, {"email": 1, "_id": 0})
。
example@gmail.com test@gmail.com
我得到了结果
email
现在,我遇到了一个问题。我想找到checkin
得到checkout
和email
。
这意味着只有checkin - checkin array
和checkout - checkout array
db.getCollection('test').find({checkin : {$in: checkin}},{checkout : {$in: checkout}}, {"email": 1, "_id": 0})
才有价值
我试过这个查询但不行
@RestController
@RequestMapping("/item")
public class ItemController {
@Autowired private ItemService itemService;
@RequestMapping(method = RequestMethod.GET)
public List<Item> getAllItems() {
return itemService.getItems(LocalDate.now());
}
@RequestMapping(method = RequestMethod.GET, path = "/{date}")
public List<Item> getItemByDate(
@PathVariable(value = "date") LocalDate itemDate) {
return itemService.getItems(itemDate);
}
}
答案 0 :(得分:1)
--re-interval
如果'checkin'和'checkout'两个数组都存在,这个qyery会返回电子邮件。 如果你想检查数组的大小,你可以使用
db.getCollection('test').find(
{ $and: [
{'checkin' : {$exists: true}},
{'checkout' : {$exists: true}}
]
},
{
'email':1
//just set email:1 to get only email in projection
})