使用 ObjectId 的 mongodb 聚合查找

我正在为 mongodb 中的基本查找而苦苦挣扎。尝试多种组合后,我无法弄清楚出了什么问题。我看到有很多关于 SO 解决它的问题,但在尝试所有答案后没有任何效果。

这是我的用户集合

在此处输入图片说明

这是我的物品收藏

在此处输入图片说明

每个项目都有一个所有者,它映射到用户集合中用户的 _id。对于我的查询,我试图通过相应的用户获取项目。这是查询

   db.items.aggregate([
    {
        "$lookup" : {
          localField : "owner",
          from : "users",
          foreignField : "_id",
          as : "users"
        }
    }
])

它返回这个 -

在此处输入图片说明

我尝试了不同的变化 - 例如

db.items.aggregate([
    {
        "$lookup" : {
          localField : "owner.str",
          from : "users",
          foreignField : "_id.str",
          as : "users"
        }
    }
])

这导致用户数组填充不正确(所有用户!)。

在此处输入图片说明

我究竟做错了什么?

编辑

这是项目集合

{
  "_id": {
    "$oid": "5b268395c176db1548bd92c2"
  },
  "title": "Item #1",
  "description": "Item 1 Description",
  "categories": [
    {
      "$ref": "categories",
      "$id": {
        "$oid": "5b268248c176db1548bd92af"
      }
    }
  ],
  "status": "borrowed",
  "image": "http://cdn.site.com/testimage.png",
  "borrower": "5b2684a0c176db1548bd92d5",
  "owner": {
    "$ref": "users",
    "$id": {
      "$oid": "5aecc8012d3d947ba130800d"
    }
  }
}

{
  "_id": {
    "$oid": "5b2c2c4d3c70af2da07d1266"
  },
  "title": "Item 2",
  "description": "Item 2 Description",
  "categories": [
    {
      "$ref": "categories",
      "$id": {
        "$oid": "5b268248c176db1548bd92af"
      }
    }
  ],
  "status": "Available",
  "image": "http://cdn.site.com/testimage1.png",
  "borrower": null,
  "owner": {
    "$ref": "users",
    "$id": {
      "$oid": "5b2684a0c176db1548bd92d5"
    }
  }
}

这是用户集合:

{
  "_id": {
    "$oid": "5aecc8012d3d947ba130800d"
  },
  "email": "[email protected]",
  "registeredOn": "20/10/2018 12:12:29 AM",
  "avatarURL": "http://gravtar.com/12334",
  "friends": []
}

{
  "_id": {
    "$oid": "5b2684a0c176db1548bd92d5"
  },
  "email": "[email protected]",
  "registeredOn": "20/10/2018 12:12:29 AM",
  "avatarURL": "http://gravtar.com/12334",
  "friends": [],
  "wishlist": [
    {
      "$ref": "items",
      "$id": {
        "$oid": "5b2831543c70af2da07d11da"
      }
    }
  ]
}
亚历克斯·布莱克斯

localFieldforeignField应该是相同的数据类型。分别DBRefObjectId

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从String到ObjectId的Spring数据MongoDb聚合查找

来自分类Dev

MongoDB使用聚合管道查找和更新

来自分类Dev

如何在mongodb中查找文档并使用聚合查找属性?

来自分类Dev

MongoDB-在ObjectId上聚合$ match

来自分类Dev

MongoDB聚合以实际文档替换ObjectId数组

来自分类Dev

在Mongodb中使用聚合,查找和管道进行查询

来自分类Dev

使用mongoDB聚合查找百分比

来自分类Dev

MongoDB 如何使用未定义的 $lookups(聚合)查找文档

来自分类Dev

Mongodb聚合查找2级别,创建了结果的新条目,而不是仅填充具有objectId的列

来自分类Dev

MongoDB使用什么算法来哈希ObjectId?

来自分类Dev

在MongoDB中将ObjectId与Mongoose结合使用

来自分类Dev

在MongoDB中将ObjectId与Mongoose结合使用

来自分类Dev

使用更新 mongoDB 从 objectId 数组中删除

来自分类Dev

MongoDB聚合项目字符串转换为ObjectId

来自分类Dev

我在mongodb聚合中使用查找,但是它不返回我要查找的数据

来自分类Dev

如何使用 nodejs 通过 objectId 和 mongodb 中的另一个字段查找文档?

来自分类Dev

MongoDB聚合查询,查找失败

来自分类Dev

MongoDB:按数组中的一个objectId查找

来自分类Dev

如何将ObjectId参数添加到mongodb查找

来自分类Dev

如何转换为ObjectId并在MongoDB查找上匹配日期?

来自分类Dev

如何使用MongoDB聚合

来自分类Dev

使用聚合MongoDB

来自分类Dev

如何使用MongoDB聚合框架查找组中的最新项目?

来自分类Dev

使用关联集合字段进行查找和排序的MongoDB聚合正在减慢查询速度

来自分类Dev

MongoDB:我可以在保存文档之前使用创建的ObjectId

来自分类Dev

如何使用SQL从MongoDB ObjectId中检索日期

来自分类Dev

MongoDB:使用Java驱动程序按ObjectId查询

来自分类Dev

使用正则表达式对ObjectId查询MongoDB

来自分类Dev

如何使用MongoDB(Mongoose)在集合中添加/更新ObjectId数组?

Related 相关文章

  1. 1

    从String到ObjectId的Spring数据MongoDb聚合查找

  2. 2

    MongoDB使用聚合管道查找和更新

  3. 3

    如何在mongodb中查找文档并使用聚合查找属性?

  4. 4

    MongoDB-在ObjectId上聚合$ match

  5. 5

    MongoDB聚合以实际文档替换ObjectId数组

  6. 6

    在Mongodb中使用聚合,查找和管道进行查询

  7. 7

    使用mongoDB聚合查找百分比

  8. 8

    MongoDB 如何使用未定义的 $lookups(聚合)查找文档

  9. 9

    Mongodb聚合查找2级别,创建了结果的新条目,而不是仅填充具有objectId的列

  10. 10

    MongoDB使用什么算法来哈希ObjectId?

  11. 11

    在MongoDB中将ObjectId与Mongoose结合使用

  12. 12

    在MongoDB中将ObjectId与Mongoose结合使用

  13. 13

    使用更新 mongoDB 从 objectId 数组中删除

  14. 14

    MongoDB聚合项目字符串转换为ObjectId

  15. 15

    我在mongodb聚合中使用查找,但是它不返回我要查找的数据

  16. 16

    如何使用 nodejs 通过 objectId 和 mongodb 中的另一个字段查找文档?

  17. 17

    MongoDB聚合查询,查找失败

  18. 18

    MongoDB:按数组中的一个objectId查找

  19. 19

    如何将ObjectId参数添加到mongodb查找

  20. 20

    如何转换为ObjectId并在MongoDB查找上匹配日期?

  21. 21

    如何使用MongoDB聚合

  22. 22

    使用聚合MongoDB

  23. 23

    如何使用MongoDB聚合框架查找组中的最新项目?

  24. 24

    使用关联集合字段进行查找和排序的MongoDB聚合正在减慢查询速度

  25. 25

    MongoDB:我可以在保存文档之前使用创建的ObjectId

  26. 26

    如何使用SQL从MongoDB ObjectId中检索日期

  27. 27

    MongoDB:使用Java驱动程序按ObjectId查询

  28. 28

    使用正则表达式对ObjectId查询MongoDB

  29. 29

    如何使用MongoDB(Mongoose)在集合中添加/更新ObjectId数组?

热门标签

归档