0

我的数据库上有 2 个集合。

首先,我有一个包含电视列表的“tvs”集合,其次我有 tvcomments,其中包含在每台电视中所做的评论。

我想用一个新字段更新“tvs”集合,该字段显示每台电视的评论数。

“tv”字段是“tvs”集合中的“_id”字段,它引用了评论的电视。

我证明了下面的代码,但它是有效的

db.tvs.update( { $set: { numcomments: db.tvcomments.find( { tv: this._id } ).count() } }, { multi: true } )
4

1 回答 1

1

Mongo 中的默认_id键是 Mongo 对象 ID。您必须转换this._id为 ObjectId: ObjectId(this._id)

你的命令变成:

db.tvs.update( { $set: { numcomments: db.tvcomments.find( { tv: ObjectId(this._id) } ).count() } }, { multi: true } )

ObjectId 是一个 12 字节的 BSON 类型,使用以下方法构造:

  • 一个 4 字节的值,表示自 Unix 纪元以来的秒数,
  • 一个 3 字节的机器标识符,
  • 一个 2 字节的进程 ID,以及
  • 一个 3 字节的计数器,从一个随机值开始。

在文档中查看更多信息。

于 2013-08-26T11:08:39.110 回答