Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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
Node.js 如何从Jade中找到数据数组中的特定项?_Node.js_Mongodb_Express_Mongoose_Pug - Fatal编程技术网

Node.js 如何从Jade中找到数据数组中的特定项?

Node.js 如何从Jade中找到数据数组中的特定项?,node.js,mongodb,express,mongoose,pug,Node.js,Mongodb,Express,Mongoose,Pug,不确定这是否是好的/坏的做法,但我已成功地将两组数据(mongodb集合)服务器到jade页面 这些数据mongoose模式的示例如下: ... var personSchema = new Schema({ firstName: String, lastName: String, email: String, city: String, state: String, zip: Number }); module.exports = mongoose.model('person', person

不确定这是否是好的/坏的做法,但我已成功地将两组数据(mongodb集合)服务器到jade页面

这些数据mongoose模式的示例如下:

...
var personSchema = new Schema({
firstName: String,
lastName: String,
email: String,
city: String,
state: String,
zip: Number
});
module.exports = mongoose.model('person', personSchema);

我已经成功地为翡翠TPL提供了这两个系列,它们工作得很好。但现在我对如何做我想做的事感到困惑:

我正在为引用构建一个页面,为引用对象提取数据。在来自quotes集合的单个quote的文档中,它具有来自persons集合的person的ObjectId

到目前为止,这就是我所拥有的,但我被卡住了:

each quote in quotes
ul
    li #{quote.quote}
    li #{quote._person.firstName} #{quote._person.lastName}
因为它不起作用。我需要找到一种方法进入引用文档中引用的person文档,并获取firstName和lastName


这是我第一次在stackoverflow上寻求帮助,如果我缺少任何可以帮助我的东西,请告诉我。

问题是,除了将ObjectId和ref添加到架构中,还有一个额外的步骤。正如@Molda所指出的,您必须使用.populate()函数来实现这一点

看到注释后,我查找了.populate()函数,并对其进行了很好的解释

因此,当我打电话时,它必须看起来像:

quote.find({}).populate({
   path: '_person',
   model: 'person'
   }).exec(callback);

问题在于,除了将ObjectId和ref添加到模式中之外,还有一个额外的步骤。正如@Molda所指出的,您必须使用.populate()函数来实现这一点

看到注释后,我查找了.populate()函数,并对其进行了很好的解释

因此,当我打电话时,它必须看起来像:

quote.find({}).populate({
   path: '_person',
   model: 'person'
   }).exec(callback);

请说明如何查询数据库中的报价。您正在使用populate
Quote.find(…).populate(“\u person”)…
?我对.populate()函数一无所知。你一提到它,我就查了一下,它解决了我的问题。非常感谢。请说明如何查询数据库中的报价。您正在使用populate
Quote.find(…).populate(“\u person”)…
?我对.populate()函数一无所知。你一提到它,我就查了一下,它解决了我的问题。非常感谢。