17得票5回答
如何在Mongoose.js的pre/post更新钩子中检查修改字段

我需要知道在Mongoose模式中,哪些字段被修改或者一个特定的字段是否在更新前或更新后的钩子函数中被修改。我尝试了以下方法,但仍然无法解决:schema.post('update', function (doc) { //check modified fields or if the...

14得票4回答
如何在Mongoose中定义一个不同于_id的主键?

我想使用非_id的主键来定义Mongoose模式。文档表示仅允许在子文档中将模式选项标志_id设置为false。同时,我希望主键是String而不是ObjectId。这有可能吗? 使用二级索引是一个选项,但并不理想,因为我希望有适当名称的主键。我也不想在不需要的情况下使用两个不同的索引。 ...

66得票6回答
使用Mongoose的文档引用实现一对多关系

我正在为一个新项目设计数据库结构,对于MongoDB和Mongoose我还比较陌生。 我已经阅读了Mongooses的population文档,在文档中介绍了一种一对多的关系,一个Person文档对应多个Story文档,但是让我困惑的部分是,Story文档没有引用它所属的Person文档,而...

33得票8回答
使用Mongoose查找或创建数据

我有Page.findById(pageId).then(page => { const pageId = page.id; .. }); 我的问题是,如果没有给出页面ID,它应该根据一些条件选择第一个可用的页面,方法如下:Page.findOne({}).then(page ...

7得票4回答
如何在Node.js应用程序中解决无法读取未定义的属性'push'?

当我向子文档添加值时,在命令提示符中显示错误,例如无法读取属性“push”。我该怎么解决? 以下是我的模式代码,借助这些代码,我可以向父模式提供值,但我无法为此子模式提供值: var venueSchema = new Schema({ name: { type:...

14得票1回答
如何在Node.js中创建MySQL模式

我正在使用nodejs、express框架和mysql作为我的数据库。我想知道如何使用mysql复制这个mongoose代码。我找不到一种方法在nodejs文件中编写我的SQL模式。我是否必须使用workbench?谢谢!var mongoose = require('mongoose'); ...

8得票1回答
Mongoose高级自定义模式对象类型

我找不到任何关于在Mongoose >=4.4中涉及自定义对象(或值对象)的高级自定义模式类型的示例。 想象一下,我想使用一个自定义类型,例如: function Polygon(c) { this.bounds = [ /* some data */ ]; this.npoint...

8得票3回答
当 mongoose 文档被更新时如何触发函数

我在mongoose中有一个用户模型架构,其中包含了好友和群组列表以及stats信息,如下所示... var user = new Schema({ email: { type: String, required: true, unique: true }, password: { ...

9得票1回答
如何在另一个文件中使用一个未被导出的mongoose模型?

考虑一个非常简单的Express 4应用程序结构: -- app.js -- models |--db.js |--news.js 其中news.js包含一个基于mongoose模式的模型: var mongoose = require('mongoose'); v...

14得票1回答
使用TypeScript定义Mongoose静态模型

我创建了一个Mongoose Schema,并为名为Campaign的模型添加了一些静态方法。 如果我在控制台上打印Campaign,我可以看到它上面存在的方法。问题是我不知道在哪里添加这些方法,以便Typescript也知道它们存在。 如果我将它们添加到我的CampaignModelIn...