mongodbnodejs查找没有从国外获取数据table
mongodb nodejs lookup does not get data from the foreign table
我正在尝试在 mongodb 中执行查找以从两个 table 中获取数据。这是我到目前为止创建的内容:
database.collection('surveys').aggregate([
{ $lookup:
{
from: 'questions',
localField: '_id',
foreignField: 'surveyId',
as: 'questions'
}
}
]).toArray(function(err, res) {
if (err) throw err;
console.log(JSON.stringify(res));
});
问题是我的调查 table 的数据显示得很好,但是我的问题 table 的数据总是一个空数组,我不知道为什么。请在附件中找到我的数据库结构的两个屏幕截图。
这很好用,所以您的问题可能是调查的 _id 和问题的调查 ID 不匹配。提示:尝试使用像 Robo 3T 这样的 MongoDB 客户端来调试您的查询,而不是先在代码中进行。
db.surveys.insert([
{ "_id" : "survey_1", "title" : "test" }
])
db.questions.insert([
{ "_id" : "question_1", "isSeek" : true, "question" : "test", "surveyId" : "survey_1" }
])
db.surveys.aggregate([
{ $lookup: {
from: 'questions',
localField:'_id',
foreignField:'surveyId',
as: 'questions'
} }
])
结果:
{
"_id" : "survey_1",
"title" : "test",
"questions" : [
{
"_id" : "question_1",
"isSeek" : true,
"question" : "test",
"surveyId" : "survey_1"
}
]
}
我正在尝试在 mongodb 中执行查找以从两个 table 中获取数据。这是我到目前为止创建的内容:
database.collection('surveys').aggregate([
{ $lookup:
{
from: 'questions',
localField: '_id',
foreignField: 'surveyId',
as: 'questions'
}
}
]).toArray(function(err, res) {
if (err) throw err;
console.log(JSON.stringify(res));
});
问题是我的调查 table 的数据显示得很好,但是我的问题 table 的数据总是一个空数组,我不知道为什么。请在附件中找到我的数据库结构的两个屏幕截图。
这很好用,所以您的问题可能是调查的 _id 和问题的调查 ID 不匹配。提示:尝试使用像 Robo 3T 这样的 MongoDB 客户端来调试您的查询,而不是先在代码中进行。
db.surveys.insert([
{ "_id" : "survey_1", "title" : "test" }
])
db.questions.insert([
{ "_id" : "question_1", "isSeek" : true, "question" : "test", "surveyId" : "survey_1" }
])
db.surveys.aggregate([
{ $lookup: {
from: 'questions',
localField:'_id',
foreignField:'surveyId',
as: 'questions'
} }
])
结果:
{
"_id" : "survey_1",
"title" : "test",
"questions" : [
{
"_id" : "question_1",
"isSeek" : true,
"question" : "test",
"surveyId" : "survey_1"
}
]
}