Javascript 查找字段数据类型为非NaN的所有记录

Javascript 查找字段数据类型为非NaN的所有记录,javascript,mongodb,mongodb-query,Javascript,Mongodb,Mongodb Query,我想找到与这个问题完全相反的答案 关键字$not需要一个文档,我成功地使用了type,我猜NaN将是一个双重: db.collection.find({'key2': {$not : {$type :1}}}) 我设法找到的另一种方法是使用$nin: db.collection.find({'key1': NaN, 'key2' : { $nin : [NaN]}}})) 有更好的办法吗?你能指出吗 首先,祝贺您对数据进行了此操作。但这里的一个简单例子是构建一个表达式,该表达式也是NaN

我想找到与这个问题完全相反的答案

关键字
$not
需要一个文档,我成功地使用了
type
,我猜NaN将是一个双重:

db.collection.find({'key2': {$not : {$type :1}}})
我设法找到的另一种方法是使用
$nin

db.collection.find({'key1': NaN,  'key2' : { $nin : [NaN]}}})) 

有更好的办法吗?你能指出吗

首先,祝贺您对数据进行了此操作。但这里的一个简单例子是构建一个表达式,该表达式也是
NaN
(当然在JavaScript中)并在查询过滤器中使用它

例如:

db.collection.find({'key1':parseInt(“a”),'key2':{$nin:[parseInt(“a”)]})
因为对“不是数字”的内容执行的
parseInt()
将生成常量结果,因此满足查询的匹配条件


在其他任何地方,
NaN
将作为“双精度”或BSON类型1进行计算,您需要其他逻辑来区分该“类型”与其他可能的“双精度”值。

首先,祝贺您对数据执行此操作。但这里的一个简单例子是构建一个表达式,该表达式也是
NaN
(当然在JavaScript中)并在查询过滤器中使用它

例如:

db.collection.find({'key1':parseInt(“a”),'key2':{$nin:[parseInt(“a”)]})
因为对“不是数字”的内容执行的
parseInt()
将生成常量结果,因此满足查询的匹配条件

在其他任何地方,
NaN
将计算为“Double”或BSON类型1,您需要其他逻辑来区分该“type”与其他可能的“Double”值。

您可以使用运算符查找字段不包含特定值的文档。在shell中使用
$ne
NaN
效果很好:

db.collection.find({key1: {$ne: NaN}})
您可以使用运算符查找字段不包含特定值的文档。在shell中使用
$ne
NaN
效果很好:

db.collection.find({key1: {$ne: NaN}})