我使用mongodb作为我的博客平台,用户可以在这里创建自己的博客.所有博客的所有条目都在条目集合中.条目的文档如下所示:

{
  'blog_id':xxx,
  'timestamp':xxx,
  'title':xxx,
  'content':xxx
}

正如问题所说,有没有办法 for each 博客 Select ,比如最后3条?

推荐答案

如果你能接受两件事,那么在基本mongo中实现这一点的唯一方法是:

  • 你的入职文件中还有一个字段,我们称之为"年龄"
  • 一篇新的博客文章进行了额外的更新

如果是这样的话,你可以这样做:

  1. 在创建一个新的介绍后,进行正常的插入,然后执行此更新以增加所有帖子(包括您刚刚为本博客插入的帖子)的年龄:

    db.条目.更新({blog_id:blog_id},{age:{$inc:1}},false,true)

  2. 查询时,使用以下查询,将返回每个博客最近的3个条目:

    db.条目.查找({age:{$lte:3},时间戳:{$gte:STARTOFMONTH,$lt:ENDOFMONTH}).排序({blog_id:1,age:1})

请注意,这个解决方案实际上是并发安全的(没有重复期限的条目).

Mongodb相关问答推荐

获取响应周期中的特定键和值

如何在 mongodb 中将一个方面的结果合并到一个有条件的列表中?

System.FormatException occurred in MongoDB.Bson.dll - XXX is not a valid 24 digit hex string

MongoID find 或 find_by

Mongoose 架构引用和未定义类型ObjectID

MongoDB映射/减少多个集合?

在一个变量上运行的 Node JS 中使用正则表达式的 Mongo 查询

MongoDB 的 Java 语法

如何更新 mongodb 文档以向数组添加新元素?

Mongodb 约定包

MongoDB 3 Java判断集合是否存在

MongoDB 查找精确的数组匹配,但顺序无关紧要

MongoDB Compass 过滤器(查询)

MongoDB 嵌套 OR/AND 在哪里?

在 mongodb 中插入当前日期时间

如何仅通过一次调用将一组对象保存到mongoose数据库?

如何通过mongoose更新 mongodb 中的对象?

带有索引字段的 MongoDB 正则表达式

查找聚合性能差

全局初始化失败:BadValue Invalid or no user locale set.请确保正确设置 LANG 和/或 LC_* 环境变量