javascript - MongoDB 计数未返回正确的数字

标签 javascript mongodb

我的时间戳属性是一个数字(日期纪元时间戳)。

给出以下查询:

//q1
db.measurements
  .count()

//q2
db.measurements
  .find({$or: [
    { timestamp: { $exists: false } },
    { timestamp: null }
  ]})
  .count();

//q3
db.measurements
  .find({ timestamp: { $gte: new Date(2019, 9, 18).getTime() } })
  .count()

//q4
db.measurements
  .find({timestamp: { $not: { $gte: new Date(2019, 9, 18).getTime() } } })
  .count()

结果:

  • q1:2492699
  • q2:0
  • q3:2468987
  • q4:6

请解释一下为什么我找不到丢失的 23000 条记录。 count() 是否被缓存或者我的索引有问题?也许我的查询是错误的。

最佳答案

尝试这些查询,然后检查结果是否相同。

db.measurements.count()

db.measurements.find({}).count()

db.measurements.find({ timestamp: { $exists: true } }).count();

关于javascript - MongoDB 计数未返回正确的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58486320/

相关文章:

javascript - d3.js:如果域不以 0 开头(表示 [0,*]),则不呈现直方图

javascript - 使用 setAttribute() 设置 "data-icon"时 Iconify 图标不更新

python - pymongo 排序和 find_one 问题

java.lang.IllegalArgumentException : Invalid reference performing aggregation in MongoDB 异常

javascript - ES6 中带有嵌套反引号 (`) 的模板文字

javascript - 我知道这是一个引用周期。但这是内存泄漏吗?

javascript - Cordova 中的 Angular Carousel 无法正常工作

javascript - 如何防止 Mongoose 使用 ObjectID 插入而不是嵌入它

node.js - Mongoose 模式没有选择新属性

json - MongoDB。如何更新数组内的json属性