查找数组中可能存在也可能不存在的元素
Find element in an array that may or may not exist
我有一个文档,看起来有点像这样:
> db.orders.find()
{
_id: ObjectId(),
_reminders: [{
notified: true,
timestamp: ISODate(),
completed: false
}]
}
{
_id: ObjectId(),
_reminders: []
}
我试图找到的是订单集合中的一个文档,其中"提醒"不包含特定时间范围内的提醒,并且未完成。
db.orders.find({
'_reminders': {
$elemMatch: {
completed: false,
timestamp: { $ne: time }
}
}
});
问题是这不会找到一个根本没有任何提醒的订单。
如何查询?
这应该能得到你想要的
db.getCollection('Clock').find({
$or : [
{
_reminders : {
$elemMatch : {
timestamp : {
$lte : ISODate("2019-07-12T15:35:32.278Z"),
$gte : ISODate("2012-07-12T15:35:32.278Z")
},
completed : false
}
}
},
{
_reminders : {$size : 0}
},
{
_reminders : {$exists : false}
}
]
})
你应该使用$or查询。
db.orders.find({$or: [ { _reminders: [] }, here_put_your_query_with_time_match ]})
- 它将返回与您的查询匹配的文档和具有空_reminders的文档
相关文章:
- WinJS,从可能是异步的函数返回一个承诺,也可能不是异步的
- 浮景图数据或其他原因的最大长度,即使渲染轴,水平条也可能不显示
- Javascript:当属性可能不存在时,在对象中使用OR条件
- regex某个字符可以存在也可以不存在,但之后什么都没有
- 原型JavaScript Event.observe-如何观察可能存在或不存在的元素
- 将函数作为 Javascript 中可能尚不存在的参数传递
- 在Javascript中,有没有办法评估一个变量,该变量可能是函数,也可能不是函数
- 将 jquery 变量重置为不存在的最低可能值
- Python 中访问可能不存在的 k/v 对值的最佳实践
- 验证可能不存在的字段
- 如何在JavaScript中的一行中调用一个可能不存在的方法而不出错
- JavaScript:访问可能不存在的属性的子属性的最少重复的方法
- 可能是也可能不是另一个Angular指令的子指令
- 从母版页-如何在子页中找到可能存在也可能不存在的项目的clientID
- 检查是否存在嵌套在对象深处的函数,这些函数可能不存在
- jQuery可能放在同一行的第一个,也可能不是第一个
- 检查数组中可能不存在的键
- JavaScript:追加内容(当目标可能不存在时)
- 查找数组中可能存在也可能不存在的元素
- 设计模式- JavaScript.安全提取深层(可能不存在)对象属性的通用函数