javascript - Mongo $lookup 返回空数组

标签 javascript mongodb mongoose aggregate

当对我的模式执行 $lookup 时,它总是返回一个空数组。我究竟做错了什么?

结果收集

const resultSchema = new mongoose.Schema({
  trial: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Trial',
    required: true
  }
});
<小时/>

试用收藏

const trialSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true
  }
});
<小时/>

聚合

Result.aggregate([
    {
      $lookup: {
        from: 'trial',
        localField: 'trial',
        foreignField: '_id',
        as: 'x'
      }
    }
  ])
    .exec()
    .then(results => ({ results }))

“x”最终始终是一个空数组。

最佳答案

好的,刚刚在这里找到了答案:https://stackoverflow.com/a/45481516/3415561

查找中的“来自”字段必须是您的集合名称,而不是模型名称。因此它是一个复数词。 在这里

from: 'trials'

而不是

from: 'trial'

关于javascript - Mongo $lookup 返回空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49348152/

相关文章:

javascript - Mongoose JS : `TypeError: Object #<Object> has no method ' save'`: Cannot save part of a document?

javascript - 将没有键的值推送到 javascript 数组

javascript - 如何在 javascript 中添加克隆计数器 id

javascript - 如何在 JavaScript 中编写递归阻塞函数而不溢出堆栈?

javascript - 尽管目标为 ="_Self",但 IE8 本地文件的 href 打开新窗口

javascript - 将日期字符串转换为带时区的 ISO 日期

java - Morphia 在保存基本实体时抛出内部异常

c++ - 如何使用 Date 数据类型编写 mongocxx (v3) 查询?

node.js - MongoError : The 'cursor' option is required, 除了带有解释参数的聚合

node.js - 如何仅为提供的键更新 Mongoose 文档的嵌套对象