MongoDB 使用 $where 查询两个时间字段差值等于1天且另一个字段等于3的数据
在 MongoDB 中,可以使用以下查询语句来实现你的需求:\n\n\ndb.collection.find({\n \$where: function() {\n var diff = Math.abs(this.date2.getTime() - this.date1.getTime());\n var diffDays = Math.ceil(diff / (1000 * 3600 * 24));\n return diffDays === 1 && this.field === 3;\n }\n})\n\n\n在上述查询语句中,collection是你的集合名称,date1和date2是两个时间字段,field是另外一个字段。通过使用\$where操作符,我们可以在查询中使用JavaScript函数来进行条件判断。在函数中,我们计算了date1和date2的时间差,并将其转换为天数,然后判断天数是否等于1,并且field的值是否等于3。\n\n请注意,使用\$where操作符会导致查询性能下降,因为它需要针对每个文档执行JavaScript函数。如果可能的话,建议使用其他查询操作符来优化查询性能。
原文地址: https://www.cveoy.top/t/topic/pK60 著作权归作者所有。请勿转载和采集!