2017-08-04 40 views
0

我有文档蒙戈的形式:蒙戈发现通过查询功能中的Node.js

{ 
"videoname": "TheTitle", 
"numviews": "150" 
} 

我想找到所有的意见大于1000的文件我不能使用$gt,因为它不适用于字符串,并且我尝试使用$where,但它返回集合中的所有文档。

let cursor = collection.find({$where: function(){return Number(this.numviews) > 1000;}}); 
    cursor.count(function (err, count) { 
     console.log("Total matches: " + count); 
    }); 

那么我该如何做到这一点?

+0

为什么数值是一个字符串? –

+0

@KevinB它是来自Youtube API的数据,它恰好是一个字符串 – frozen

+1

尽管速度很慢,那么'$ where'查询应该起作用。但是,在将它们存储在mongodb中之前,您应该将这些字符串转换为数字类型。 – JohnnyHK

回答

-1

理想情况下,转换数据!

但在短期内,我认为mongo支持正则表达式。那么where子句怎么样:

{numViews: /[1-9][0-9]{3,}/}