草庐IT

mongoose-dbref

全部标签

node.js - Mongoose:无法使用 $addToSet 或 $push 将新对象添加/推送到数组

我使用Nodejs、Hapijs和Mongoose。我有一个架构和模型如下。varschema={name:{type:String,required:true},lectures:{}};varmongooseSchema=newmongoose.Schema(schema,{collection:"Users"});mongoose.model("Users",mongooseSchema);出于某种原因,我需要保持“讲座”作为混合型。在保存/创建文档时,我创建了一个嵌套属性lectures.physics.topic[],其中topic是一个数组。现在,我正在尝试使用$addTo

node.js - 类似于 Node 和 mongoose 的存储库模式

我正在使用node和mongoose开发我的第一个应用程序,并尝试使用存储库模式构建应用程序。我有我的应用程序模块,一个使用旅程的路由器模块和一个Mongoose层。我为每个mongo实体创建了一个单独的模块,并为CRUD操作的导出方法充当了存储库。这是构建应用程序的好方法还是我应该采用另一种方法? 最佳答案 这是一个不错的方法,尽管我鼓励您放置更多层:服务Controller为公共(public)资源创建Controller,例如:UserController。您还应该创建一个UserService而不是直接从您的Controll

javascript - 为任何更新查询增加 Mongoose 文档版本的简单方法?

我想开始利用Mongooses文档版本控制(__v键)。我在实际增加版本值时遇到了问题,然后我发现您必须在执行查询时添加this.increment()。有没有办法自动递增?现在,我只是将它添加到pre中间件中,用于更新类型的查询:module.exports=Mongoose=>{constSchema=Mongoose.SchemaconstmodelSchema=newSchema({name:Schema.Types.String,description:Schema.Types.String})//Anymiddlewarethatneedstobefiredoffforan

node.js - 使用 nodejs/mongoose 部分更新子文档

是否可以使用Mongoose一次性在(子)文档上设置多个属性?我正在尝试做的一个例子:假设我有这个架构:varsubSchema=newSchema({someField:String,someOtherField:String});varparentSchema=newSchema({fieldOne:String,subDocs:[subSchema]})那我想做:exports.updateMyDocument=function(req,res){varparentDoc=req.parentDoc;//Theparentdocument.Setbyparameterresolv

node.js - 使用 nodejs/mongoose 部分更新子文档

是否可以使用Mongoose一次性在(子)文档上设置多个属性?我正在尝试做的一个例子:假设我有这个架构:varsubSchema=newSchema({someField:String,someOtherField:String});varparentSchema=newSchema({fieldOne:String,subDocs:[subSchema]})那我想做:exports.updateMyDocument=function(req,res){varparentDoc=req.parentDoc;//Theparentdocument.Setbyparameterresolv

mongodb - Mongoose 文档架构和验证

我有这样的架构:classSchemasconstructor:->@mongoose=require'mongoose'@schema=@mongoose.Schema@EmployeeSchema=new@schema'firstname':{type:String,required:true},'lastname':{type:String,required:true},'email':{type:String,required:true,index:{unique:true},validate:/\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA

mongodb - 我需要带有graphql的 Mongoose 吗?

如果我想将mongo数据库连接到graphql架构,我需要mongooseORM还是可以只进行原始驱动程序调用? 最佳答案 两者都可以。如果您已经定义了Mongoose模型,您可以在编写resolve函数时使用它们。见followingexample.varQueryType=newGraphQLObjectType({name:'Query',fields:()=>({todos:{type:newGraphQLList(TodoType),resolve:()=>{returnnewPromise((resolve,reject

mongodb - Mongoose 不会删除嵌入的文档

我在这里摸不着头脑,就像往常一样,Node项目似乎是这样,我不确定我是做错了什么还是遇到了错误。我有一个服务器模式,它可以有任意数量的嵌入式文档,称为服务。我遇到了一个问题,尽管我已经成功地从服务器对象中删除了单个服务,但当我告诉它保存它并没有从数据库中删除它时。保存功能正在工作,因为它保存了我所做的任何更改,并且还在推送新的嵌入式文档,它只是没有删除已经存在的文档。这是我的代码的一个相对简化的例子:app.put('/server/:id',function(req,res,next){app.Server.findOne({_id:req.params.id},function(e

node.js - Mongoose - 无论如何要防止中间件保存 Hook 在某些条件下执行(例如,被保存为子文档)?

我有一个模式Foo,它有保存前和保存后的钩子(Hook)。对于我正在编写的一个特殊调试应用程序,我抓取了所有事件的Foo对象。然后,将它们保存为子文档,作为历史架构的一部分。当我将它保存为子文档的一部分时,我不希望我的pre/post保存Hook执行。处理这个问题的最佳方法是什么?我想避免必须从Foo对象中提取所有数据,然后保存在一个新的非Mongoose对象中。 最佳答案 您可以为您的Foo对象定义一个字段,例如hookEnabled并且您可以在您的钩子(Hook)函数中检查它。让我举个例子;Foo=newSchema({...h

node.js - 与 Mongoose 的一对一关系?

我知道如何使用以下类型的代码在Mongoose实体之间建立一对多关系:friends:[{type:ObjectId,ref:'User'}]但是如果我只想建立一对一的关系——比如这个用户与哪个客户相关? 最佳答案 首先,MongoDB中的关系与基于SQL的数据存储中的关系存在巨大差异(您需要从一开始就清楚这一点)。MongoDB中的关系只是相关数据的表示。没有任何机制可以维护这些关系的完整性。mongoose对refs所做的只是使用具有ref选项的字段来查询被引用集合中文档的_id字段。这用于像populate这样的操作(它在内部