【问题标题】:Find common things by two IDs in MongoDB with Mongoose使用 Mongoose 在 MongoDB 中通过两个 ID 查找共同事物
【发布时间】:2017-07-31 16:10:44
【问题描述】:

好的,我编辑清楚了。

我在这里遇到了一些问题。我找不到最好的方法:

我的 MongoDB 中有一个“表”,我的 Mongoose 模型是这样的:

var machineSchema = new Schema({
    uuid      :   String, 
    data      :   String
});

所以 UUID 是我的机器 UUID。我可以在数据库中有这样的东西:

{"uuid":"bla1","data":"RAM 1024MB"},
{"uuid":"bla1","data":"LINUX"},
{"uuid":"bla1","data":"CPU: Xeon"},
{"uuid":"bla2","data":"RAM 512MB"},
{"uuid":"bla2","data":"LINUX"},
{"uuid":"bla2","data":"CPU: Pentium Dual Core"}

我想要做的是,让两个 UUID(如 bla1 和 bla2)找到它们的共同点(数据)。所以它应该返回:

{"uuid":"bla1","data":"LINUX"},
{"uuid":"bla2","data":"LINUX"}

或者只是

{"data":"LINUX"}

我可以对 bla1 和 bla2 进行两次查询,然后手动比较它们,但我认为它有更好的方法来做到这一点。我不习惯 Mongoose 查询,有什么办法吗?在 MySQL 上,我会使用两个子查询进行查询,只选择 field1 在两者之间匹配的结果。在 Mongoose 上我应该怎么做?

谢谢!

【问题讨论】:

  • 不是一个很清楚的问题。我们可以假设您的实际数据结构,但实际上表示您的实际问题的最佳方式是展示您当前如何构建数据。这没有显示,所以请编辑。
  • 好的,尼尔,添加了有关它的详细信息。 ^^
  • 嗨 Lucas,你自己找到答案了吗?
  • 我没有 Lauren,我认为唯一的方法是手动进行比较。这是 NoSQL 的缺点之一:/ - 可能最好的方法是 Map Reduce 过程。

标签: node.js mongodb mongoose database


【解决方案1】:

听起来您需要经典的 SQL 'join' 功能。

不幸的是,MongoDB(以及大多数 NoSQL 数据库)不支持连接,该功能更适合处理单独的实体而不是集合。

【讨论】:

  • 所以我最好的选择是手动检查公共数据?
猜你喜欢
  • 2013-02-06
  • 1970-01-01
  • 2022-11-11
  • 2013-02-19
  • 2015-05-26
  • 2017-10-14
  • 1970-01-01
  • 2019-11-08
  • 2016-09-17
相关资源
最近更新 更多