mysql - 选择中的计数子查询 - mongoDB

标签 mysql node.js mongodb mongoose nosql

我想进行查询以获取在我的数据库 mongoDB 中具有更多推文的用户排名:

var TeewtSchema = new Schema({
    userId: Number,
    twweetId : Number,
    createdAt: Date,
    cuerpo: String,
    nameUser: String,
    location: String,
    avatar: String,
    user: String
});

MySql 输出类似于:

    SELECT *, (SELECT COUNT(*) FROM `TABLE 1` WHERE userId = t.userId ) rank FROM `TABLE 1` t GROUP BY t.userId ORDER BY rank DESC

但在 mongoDB 中我不知道该怎么做

最佳答案

是的,正如 JohnnyHK 所建议的,您应该使用 aggregation framework为了这。像下面这样的东西应该这样做:

db.collection.aggregate(
   { $group : { _id : "$userId", numTweets = { $sum : 1 } }, // sum tweets over each user
   { $sort : { numTweets : -1 } } // sort by numTweets in descending order
)

关于mysql - 选择中的计数子查询 - mongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18425236/

相关文章:

mysql - 如何设置mysql默认值NONE

node.js - 用于创建另一个 AWS lambda 函数的 AWS Lambda 函数

javascript - 我使用 Express 中间件收到 UnhandledPromiseRejection

mongodb - Mongodb 写入的原子性

mysql - 灵活搜索错误 : missing values

mysql - CakePHP 3.x 保存新记录以及新的关联记录

node.js - 在 Node.js 中是否有更好的方法来构造全局变量?

mongodb - 如果 Mongoose.connect 不存在,它会默认创建一个 Mongo 数据库吗?

mongodb - Grails MongoDB插件未发布的版本:1.0.1或1.1.0.GA

mysql - mysql删除重复项的方法