相关疑难解决方法(0)

如何在MongoDB中执行SQL Join等效项?

如何在MongoDB中执行SQL Join等效项?

例如,假设你有两个集合(用户和评论),我想用pid = 444以及每个集合的用户信息来提取所有评论.

comments
  { uid:12345, pid:444, comment="blah" }
  { uid:12345, pid:888, comment="asdf" }
  { uid:99999, pid:444, comment="qwer" }

users
  { uid:12345, name:"john" }
  { uid:99999, name:"mia"  }
Run Code Online (Sandbox Code Playgroud)

有没有办法用一个字段拉出所有评论(例如......查找({pid:444}))以及与每个评论相关的用户信息?

目前,我首先得到符合我标准的评论,然后找出该结果集中的所有uid,获取用户对象,并将它们与评论的结果合并.好像我做错了.

join mongodb

471
推荐指数
12
解决办法
32万
查看次数

MongoDB:如何将两个集合/数据库合并为一个?

首先请注意这个问题与以下两个不同

MongoDB:将来自多个集合的数据合并为一个..how?

合并MongoDB中的两个集合

MongoDB和"加入"

我将解释如下:

我有两个名为:DB_ADB_B我的mongodb的数据库.

每个数据库都有一个名称相同的集合store.

两个集合都有很多具有完全相同结构的文档{key:"key1",value:"value1"}等.

实际上,我应该只创建DB_A并插入所有文档DB_A.但后来当我进行第二轮插入时,我输入了错误的名称作为数据库名称.

所以现在,每个数据库的大小都是32GB,我希望合并两个数据库.

一个问题/制约因素是,可用空间现在只有15GB,所以我不能只copy从所有的东西DB_BDB_A.

我想知道我能做到move吗?或者合并两个简单数据库最简单/最好/ 最快的方法是什么?我更喜欢最有效的方式,因为简单地重新插入32GB DB_A将需要相当长的时间.

database mongodb nosql

9
推荐指数
2
解决办法
1万
查看次数

如何有效地加入 MongoDb 中的 2 个巨大集合?

我有两个巨大的(几十万条记录)集合Col1Col2,我需要从它们中获取连接的数据。有一个连接标准可以让我将返回的记录数量大幅减少到几百,所以在 SQL 语言中我会运行类似的东西

 SELECT ... FROM Col1 INNER JOIN Col2 ON Col1.field1 = Col2.field2
Run Code Online (Sandbox Code Playgroud)

而且它的运行速度非常快,因为Col1.field1Col2.field2是索引字段。有没有直接的方法或解决方法可以在 MongoDb 中使用索引快速执行相同的操作,而不是扫描所有项目?

注意:我无法重新设计集合以将它们合并为一个。

mongodb

4
推荐指数
1
解决办法
7593
查看次数

如何将来自三个集合的数据文档合并为一个集合

我在MongoDB中有以下三个集合

fd2k10sample
fd2k16sample
fd2ksample
Run Code Online (Sandbox Code Playgroud)

它们中的每个文档都具有相同的结构,因此没有以下结构问题:

fd2ksample

id  cat1    cat2     cat3   cat4
1   doza    moza     goza   hoza
2   beta    geta     jeta   leta
3   huggy   muggy    guggy  luggy
Run Code Online (Sandbox Code Playgroud)

fd2k10sample

id cat1     cat2    cat3    cat4
1  prizzy   mizzy   tizzy   hizzy
2  chuta    buta    guta    tuta
3  befer    lefer   gefer   tefer
Run Code Online (Sandbox Code Playgroud)

fd2k16sample

id  cat1   cat2   cat3   cat4
1   poopa  doopa  hoopa  loopa
2   nijjy  pijjy  hijjy  tijjy
3   ufha   puhfa  duhfa  tuhfa
Run Code Online (Sandbox Code Playgroud)

我如何像这样组合它们:

fd2kfullsample

id   cat1  cat2  cat3  cat4
1   doza    moza     goza   hoza …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

2
推荐指数
1
解决办法
761
查看次数

在单独获取MongoDB集合后加入它们

我们将一对多关系存储为MongoDB中的两个独立集合.关系是:1团队有很多人.我们故意将这些保存为单独的集合,因为我们希望能够单独查询它们.在做了大量研究之后我们决定了这个设计 - 我希望它有意义.以下是简化的Mongoose模式:

var TeamSchema = new Mongoose.Schema({
    name: String
});

var PersonSchema = new Mongoose.Schema({
    name: String
    teamId: {
        type: Mongoose.Schema.ObjectId,
        ref: 'Team',
    }
});
Run Code Online (Sandbox Code Playgroud)

在将它们发送到前端之前,我想按以下方式加入这两个集合:

[
     { "name": "John Doe",   "Team": "Orange" },
     { "name": "Jane Smith", "Team": "Orange" },
     { "name": "Doug White", "Team": "Blue"   }
]
Run Code Online (Sandbox Code Playgroud)

我不介意做两个单独的查询来将每个集合放入内存中.问题是,一旦我将它们放入内存中,加入集合的最有效方法是什么?

这是我开始做的,但加入代码不存在:

Person.find(function(err, people) {
    Team.find(function(err, teams) {
        // Now I have people and teams
        // How to join them?
    });
});
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

1
推荐指数
1
解决办法
5676
查看次数

如何在mongodb中连接两个表

如何在mongodb中连接两个表.

例如,表1:用户表2:示例

这里的用户表有用户名和示例表也有用户名,所以如何在php中使用mongodb组合两个表字段.

请解释一下查询.

谢谢,

php mongodb

1
推荐指数
1
解决办法
5979
查看次数