Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 无法按对象ID执行聚合和加入Mongo DB$查找_Mongodb_Lookup - Fatal编程技术网

Mongodb 无法按对象ID执行聚合和加入Mongo DB$查找

Mongodb 无法按对象ID执行聚合和加入Mongo DB$查找,mongodb,lookup,Mongodb,Lookup,请在下面找到代码片段 db.collection('documents').aggregate([ { $lookup: { from: 'pages', localField: '_id', foreignField: 'document_id', as: 'pages' } }]) 请在下面找到具有相应匹配示例页面的示例文档对象 SAMPL

请在下面找到代码片段

   db.collection('documents').aggregate([
     {
       $lookup:
        {
          from: 'pages',
          localField: '_id',
          foreignField: 'document_id',
          as: 'pages'
        }
    }])
请在下面找到具有相应匹配示例页面的示例文档对象

 SAMPLE DOCUMENT : 

 {"_id":"56d6b5c33bde388c1036216f","offername":"testoffer1", "details":{...} }

SAMPLE PAGE :

 { "_id":"23235c3sdsdc8c1036216f", "document_id":"56d6b5c33bde388c1036216f", "details":{} } 

我试图使用pages集合中的
文档id
字段将页面分组到相应的文档中,以与
文档
集合中的
对象id
进行映射。但是,尽管存在匹配的数据,我还是得到了页面的空数组。但是,如果我将documents集合的对象ID更改为其他变量以匹配pages集合,它将起作用。有人能帮忙吗?我假设它与对象ID有关。

你能发布一个文档和一个页面对象,它们有相应的ID吗?还有一个想法:document_id字段中的值是真ObjectId(…)对象,而不仅仅是字符串吗?@Christoph是的,document_id字段中的值是真ObjectId()对象,因为我没有执行任何显式类型转换。我甚至尝试过“\u id”。toString(),“\u id.”valueOf(),但仍未解决,已更新了相关的示例对象。@Christoph但是我设法解决了一个问题,我必须根据算法生成一个字母数字键,并将其存储在一个属性中,比如文档对象中的“offer\u id”,然后使用它与相应的页面匹配。这个很好用。我想问题在于数据类型MongoDB对象ID。将等待您对此的答复。谢谢你抽出时间。