Mongo shell聚合查询问题

3
我是一名相对新手的MongoDB用户,遇到了一个奇怪的问题。
我已经使用Compass构建了一个聚合管道。这个查询在GUI中产生了预期的结果,但在mongo shell中没有返回任何内容。
以下是查询语句:
db.searchQueryCollection.aggregate([{
    $match: {
        time_stamp: {
            $gte: ISODate("2018-08-13 17:33:20.000"),
            $lt: ISODate("2018-08-13 19:33:20.000")
        }
    }
}, {
    $group: {
        _id: "$purpose",
        groupedPurpose: {$push: "$purpose"}
    }
}, {$project: {number_of_results: {$size: "$groupedPurpose"}}}])

这是compass的输出结果: 图片描述在此输入 有什么问题吗?

请使用getCollection("abc")代替searchQueryCollection - Hardik Shah
2个回答

0
在Mongo shell中,您应该使用以下命令:
db.getCollection("YOUR_COLLECTION_NAME").aggregate([{
    $match: {
        time_stamp: {
            $gte: ISODate("2018-08-13 17:33:20.000"),
            $lt: ISODate("2018-08-13 19:33:20.000")
        }
    }
}, {
    $group: {
        _id: "$purpose",
        groupedPurpose: {$push: "$purpose"}
    }
}, {$project: {number_of_results: {$size: "$groupedPurpose"}}}])

1
我使用 db.getCollection("searchQuery").aggregate(..)db.searchQueryCollection.aggregate(...) 都没有得到结果,但是 .find() 方法在两种语法下都可以工作。 - okno

0
如果您的聚合查询没有返回结果,则可能连接到了错误的数据库。
如果使用数据库驱动程序连接,请检查连接字符串。在以下示例中,数据库名称位于连接字符串的末尾。

MONGODB_URI=mongodb+srv://username:password@cluster0.abcdefg.mongodb.net/databasename

如果您正在使用MongoDB shell连接,请运行以下两个命令:
show dbs;
    admin       288.00 KiB
    config      328.00 KiB
    local        62.66 MiB
    mydatabase    1.24 MiB

使用我的数据库;


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接