猫鼬型号人口
- 猫鼬型号人口 推荐度:
- 相关推荐
猫鼬型号人口
我与猫鼬模型居民苦苦挣扎,从两个MongoDB的集合参考数据。这两种模式如下:
// SCHEMA SETUP - Artist
var artistSchema = new mongoose.Schema({
name: String,
venuesPlayed: {
id: {
type: mongoose.Schema.Types.ObjectId,
ref: "Venue"
}
}
});
var Artist = mongoose.model("Artist", artistSchema);
// SCHEMA SETUP - Venue
var venueSchema = new mongoose.Schema({
name: String,
address: String,
});
var Venue = mongoose.model("Venue", venueSchema);
我所试图做的是对showArtist.ejs(其中列出了有关特定艺术家的细节),我希望用户能够从所有场馆的下拉列表中选择,然后选择艺术家已经在发挥的场地。所以这两点,我挣扎,并与将不胜感激帮助是:
- 是我所引用的艺术家下的场地模式的方式模式是否正确?
- 在showArtist.ejs页面,如何引用场馆下拉(如HTML select标签或类似的东西)名单?正是这一点尤其是我与作为一切我已经试过我发现了一个错误,“场馆未定义”有困难。
谢谢!
回答如下:为了您的第一点,你的模式大多是正确的,但是如果你要存储的艺术家架构中的多个场地的引用,你可能想用一个列表,而不是:
var artistSchema = new mongoose.Schema({
name: String,
venuesPlayed: [{
type: mongoose.Schema.Types.ObjectId,
ref: "Venue"
}]
});
这将允许您通过引用venuesPlayed[index]
,无需额外分配键,除非你想存储的附加属性检索每个场地的ObjectID。
关于你的第二点,你可以使用populate()
方法,以取代与检索引用文档(或多个)的ObjectID:
let artist = await Artist.findOne(some_query).populate({ 'venuesPlayed' });
在这种情况下,some_query
将是一个JSON query
唯一标识一个特定的艺术家。如果留空,猫鼬会返回它发现数据库中的第一位艺术家文档。另外,您也可以使用findById()
如果都保留了的ObjectId作为参考。
在不存在populate()
方法(例如猫鼬<3.2)的替代方案是在一个单独的查询使用$lookup
聚集,或手动迭代会场的ObjectID。
如果要执行这个查询服务器端(这是常有的情况),你仍然需要发送这个数据的客户端。随着Express,您可以通过creating a route,要么使用res.send()
,或更可能在你的情况res.render()
实现这一目标。您可以在提供的链接一个完整的API参考,但一个简单的(静态)路由可能是这个样子:
app.get('/showSomeArtist', function(req, res) {
let artist = await Artist.findOne({ name: 'Some Artist' }).populate({ 'venuesPlayed' });
res.render('showArtist', { artist });
}
然后,您可以从您的EJS文件访问artist
对象。您将需要阐述上面的例子中,以改变艺术家呈现。我建议寻找到路由参数作为一个潜在的解决方案(在Express文档中)。
- phpcms api接口开发
- matlab 回归分析t检验,第三章 利用Matlab和SPSS进行线性回归分析
- springboot项目搭建0051
- module 与 component 的区别
- .NET 反编译工具
- R统计绘图
- 这两天迷恋的音乐
- 夜听崔健
- 支付宝通过招行网上银行付钱,最多每笔500块
- 谈谈SOA
- python,jsonschema, marshmallow, “None is not of type ‘string‘
- SAR成像系列:【7】合成孔径雷达(SAR)成像算法
- 积累的VC编程小技巧之打印相关
- 曼哈顿距离,欧式距离,余弦距离
- 小程序(倒计时的制作)
- 网页弹出对话框详解
- MBRGPT硬盘分区类型属性详解(Win下更改设置OEM恢复分区方法)
- Shiro(一)之shiro简介与工作原理
- 1637
- idea各种中文乱码问题