首页 > 解决方案 > MongoDB,查找属性 id 等于记录 id 的所有文档

问题描述

我有这样的收藏:

{
   "_id" : ObjectId("546089aaf83a94de268a35c3"),
  "parent" : {
        "$ref" : "someRef",
        "$id" : ObjectId("546089aaf83a94de268a35c3"),
        "$db" : "someDB",
    }
}

如何查找 _id 等于 parent.id 的所有记录?

试过find({"parent.$id": "_id"})但显然不可能

标签: mongodb

解决方案


这里parent包含数据库参考。因此我们需要调用引用的getter方法来获取它的对象ID。

以下查询可以为我们提供预期的输出:

db.collection.find({
    $where: function(){
        return this._id.toString() == this.parent.getId().toString();
    }
}).pretty()

推荐阅读