MongoDB Mongoose Node.js中如何正确排除多值字段的文档
修正MongoDB Mongoose多值排除查询
你当前的问题出在$ne操作符的使用上,它仅支持与单个值进行不等匹配,无法直接处理数组形式的多值排除需求。要实现排除status为"Finished"或"Voided"的文档,应该使用MongoDB的$nin(Not In)操作符,它专门用于匹配字段值不在指定数组内的文档。
修正后的代码如下:
const x = await rmm.Events.find( { status: { $nin: ["Finished", "Voided"] } }, { startTime: true, name: true, _id: false } );
补充说明:如果业务场景中存在部分文档没有status字段的情况,$nin会自动包含这类文档,因为不存在的字段值默认不在指定数组内,这一点和$ne的行为保持一致。
内容的提问来源于stack exchange,提问作者TungTung
相关产品推荐
相关产品推荐

