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。将等待您对此的答复。谢谢你抽出时间。