Node.js 可选文档的Mongoose或运算符

Node.js 可选文档的Mongoose或运算符,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有上面的查询,找到活动状态和未过期。这一逻辑刚刚起作用,但对于没有过期日期文档的作业来说,这一逻辑已经失效。这是因为到期日文件是后来增加的要求 如果到期日文档不存在,如何仍然返回活动工单 您可以使用$or运算符: Jobs.find({status: 'active', expiry_date: {$gt: Date.now()}}, function(err, result) {}) 您可能需要使用existence查询,因为这将匹配没有字段的文档,但如果文档有字段但为null,则不会匹配

我有上面的查询,找到活动状态和未过期。这一逻辑刚刚起作用,但对于没有过期日期文档的作业来说,这一逻辑已经失效。这是因为到期日文件是后来增加的要求


如果到期日文档不存在,如何仍然返回活动工单

您可以使用$or运算符:

Jobs.find({status: 'active', expiry_date: {$gt: Date.now()}}, function(err, result) {})
您可能需要使用existence查询,因为这将匹配没有字段的文档,但如果文档有字段但为null,则不会匹配


从长远来看,如果可以的话,最好只填写所有文件的有效期

您可以使用$or运算符:

Jobs.find({status: 'active', expiry_date: {$gt: Date.now()}}, function(err, result) {})
您可能需要使用existence查询,因为这将匹配没有字段的文档,但如果文档有字段但为null,则不会匹配


从长远来看,如果可以的话,最好只填写所有文件的有效期

使用
$或
运算符与
$exists
检查组合使用。使用
$或
运算符与
$exists
检查组合使用。长期?我有10万个现有数据。无论如何,这是一个很好的答案,谢谢!我想我会更新我的文档:如果有办法的话,现在就有更多的理由来修复它。长期而言?我有10万个现有数据。无论如何,这是一个很好的答案,谢谢!我想我会更新我的文档:如果有办法的话,我有更多的理由现在修复它。