我想找到与此问题完全相反的how do I find all documents with a field that is NaN in MongoDB?。
关键字$not
需要一个文档,我在type
上取得了成功。猜测NaN会是双重的:
db.collection.find({'key2': {$not : {$type :1}}})
我设法找到的另一种方法是使用$nin
:
db.collection.find({'key1': NaN, 'key2' : { $nin : [NaN]}}}))
有更好的方法吗?你能指出来吗?
答案 0 :(得分:4)
答案 1 :(得分:0)
首先,祝贺您对数据这样做。但这里的简单案例是构建一个表达式,该表达式也以NaN
形式出现(当然在JavaScript中)并在查询过滤器中使用它。
如:
db.collection.find({'key1': parseInt("a"), 'key2' : { $nin : [parseInt("a")] } } )
作为"而不是数字" 的parseInt()
将产生常量结果,因此符合查询的匹配条件。
在其他任何地方,NaN
都会评估为" Double"或BSON类型1,你需要其他逻辑来区分"类型"来自其他可能的" Double"值。