0

我想在 mongodb 的查询中返回嵌入集合的计数。

假设我有一个名为配置文件的集合

var ProfileSchema = new Schema({
  uname: {
    type: String,
    required: true,
    index: true,
    unique: true
  },
  fname: String,
  lname: String,
  posts: [ObjectId]
}); 

如何查询它以便选择 uname, frame, lame, posts.length ?我不想通过网络返回帖子集合,因为用户可以拥有数百个帖子。我什至应该将帖子 ID 嵌入到配置文件架构中吗?也许我应该摆脱它,因为已经为帖子定义了另一个集合,所以我基本上使用 Profile.posts 作为外键的嵌入式集合。

4

1 回答 1

5

在此处查看 $size 运算符的 Mongo 文档讨论。

简而言之,您可以使用 $size 运算符根据确切的数组大小进行查询,但是您无法取回数组大小,也无法根据数组大小范围进行查询。

建议对您有用 - 保留另一个字段,即帖子数 - 可以在查询中用作过滤器/范围,当您需要知道数组有多大时可以返回它。无论帖子是存储在其他地方还是嵌入到数组中,如果您根据帖子数量进行查询或过滤,此字段将非常有用。

有一个非常相似的问题和类似的建议。

于 2012-06-03T21:14:28.487 回答