Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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
Javascript 从其他集合填充子字段(非参考)_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript 从其他集合填充子字段(非参考)

Javascript 从其他集合填充子字段(非参考),javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我试图填充文档的子字段,这些子字段未定义为引用。问题是每当我试图获取文档并填充字段时,mongoose总是返回null 我会尽量让这成为一个一般性的问题。我还没有在网上找到答案 schemaA: const schemaA = new Schema({ before: { type: Object, default: {} }, after: { type: Object, default: {} } }); module.exports = S

我试图填充文档的子字段,这些子字段未定义为引用。问题是每当我试图获取文档并填充字段时,mongoose总是返回null

我会尽量让这成为一个一般性的问题。我还没有在网上找到答案

schemaA

const schemaA = new Schema({
  before: {
    type: Object,
    default: {}
  },
  after: {
    type: Object,
    default: {}
  }
});

module.exports = SchemaA = mongoose.model("schemaA", schemaA);
schemaB

const schemaB = new Schema({
  someField: {
    subFieldA: {
      type: String
    },
    subFieldB: {
      type: String
    }
  }
});

module.exports = SchemaB = mongoose.model("schemaB", schemaB);
schemaA
中存在的示例文档是:

_id: ObjectId('5e4ab79d9d3ce8633aedf524')
before: {
  someField: {
    subFieldA: ObjectId('5e4ab74f9d3ce8633aedf2eb'),
    subFieldB: ObjectId('5e4ab74f9d3ce8633aedf2ep')
  },
}
after: {
  someField: {
    subFieldA: ObjectId('5e4ab74f9d4ce8633aedf2eb'),
    subFieldB: ObjectId('5e4ab74f9d3ce8639aedf2ep')
  },
}
date: 2020-02-17T15:56:13.340+00:00
我的问题是:

const schemaAs = await SchemaA.find()
  .populate(
    "before.someField.subFieldA, before.someField.subFieldB, after.someField.subFieldA, after.someField.subFieldB"
  )
但此查询返回
null
。我做错了什么?

你在找我。 这使您可以将引用的集合设置为每个文档的属性,而不是将其硬编码为一个特定集合

据我所知,没有任何引用就无法填充属性。

您正在寻找的。 这使您可以将引用的集合设置为每个文档的属性,而不是将其硬编码为一个特定集合


据我所知,在没有任何引用的情况下是不可能填充属性的。

出于好奇,您有什么理由不添加引用吗?是的,它是一个动作记录器。该操作可以向我提供对任何集合所做的更改或编辑。因此,之前的
之后的
不能绑定到任何一个集合。出于好奇,你有什么理由不添加引用吗?是的,这是一个动作记录器。该操作可以向我提供对任何集合所做的更改或编辑。因此
之前的
和之后的
不能绑定到任何一个集合。