【发布时间】:2017-08-05 04:28:11
【问题描述】:
我在 Mongo 中有以下形式的文档:
{
"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);
});
那我该怎么做呢?
【问题讨论】:
-
为什么数值是字符串?
-
@KevinB 这是来自 Youtube API 的数据,恰好是一个字符串
-
虽然很慢,但
$where查询应该可以工作。但是你真的应该在将字符串存储到 mongodb 之前将它们转换为数字类型。 -
@JohnnyHK 对于上下文,这来自 OP 的另一个(现已删除)问题,关于 node.js 驱动程序的
$where语法。我当时对他们的提示是发布一个新问题,展示他们如何使用$where,因为“你几乎从来不需要它”。所以确实“希望”在这里学到的教训是真正转换数据,而不是使用$where