草庐IT

sinon-mongoose

全部标签

javascript - Mongoose :缓存虚拟

在我的Mongoose架构中,我有一个根据文档中的各种属性计算的虚拟。其他虚拟使用这个虚拟,所以我希望缓存这个昂贵的计算。 最佳答案 是的。只需将计算结果设置为不保存到数据库的属性即可。下次调用虚拟函数时,返回该属性。schema.virtual('x').get(function(){if(this._x)returnthis._x;varx=expensiveCalculation();this._x=x;returnx;});请注意,如果计算取决于文档的其他属性,如果您更改这些属性,则必须使缓存无效。您可以为那些为您执行此操作

javascript - 自动递增序列 Mongoose

我在Mongoose中实现了一个自动递增序列字段。我将默认/起始值设置为5000。但它不是从5000开始,而是从1开始。这是我的代码:我的计数器架构//app/models/caseStudyCounter.js//loadthethingsweneedvarmongoose=require('mongoose');varbcrypt=require('bcrypt-nodejs');//definetheschemaforourusermodelvarcaseStudyCounterSchema=mongoose.Schema({_id:{type:String,required:t

mongodb - Mongoose findAndUpdate() 验证器为 null

我正在尝试在更新之前对我的架构运行验证,这是它的代码。架构varworkSchema=mongoose.Schema({location:{type:String,required:true,enum:LOCATIONS},flags:{isHourly:{type:Boolean,default:false,validate:[workValidators,'Message']}}});functionworkValidators(flag){if(flag){/*WHYIS.thisNUll?*/assert(this.location,'Musthavelocationspeci

node.js - 不使用 API REST MEAN + Mongoose 中的方法 "UPDATE"

exports.updateUsuarioByEmail=function(req,res){console.log('updateUsuarioByEmail');console.log("PARAMID"+req.params.email);returnUsuario.find({email:req.params.email},function(err,usuario){if(!usuario){res.statusCode=404;returnres.send({error:'Notfound'});}if(req.body.email!=null)usuario.email=r

node.js - 从 Mongoose 模型生成测试数据

我在nodejs应用程序中有这个模型varmongoose=require('mongoose'),Schema=mongoose.Schema;varServiceSchema=newSchema({Taxy:{type:mongoose.Schema.Types.ObjectId,ref:'Taxy',required:'Taxycannotbeblank'},User:{type:mongoose.Schema.Types.ObjectId,ref:'User',required:'Usercannotbeblank'},Servicio:String,Minutos:Numbe

javascript - mongoose findOneAndUpdate 仅附加对象

我有一个如下的对象;varexObj={'title':'name1'};其中一些具有对象的数据属性(不是我想按名称引用的数组)并且看起来像exObj={title:'name2',data:{prop1:'prop1',prop2:'prop2'}}现在我想给数据添加另一个属性,有时数据属性存在,有时不存在,但我想附加一个属性(addedProp)并保存它,所以我会这样结束;exObj={title:'name2',data:{prop1:'prop1',prop2:'prop2',addedProp:'value'}}当使用findOneAndUpdate时,我似乎只能传入一个然后

node.js - 使用 Mongoose 模式递归地获取所有 child

我正在使用带有mongoose的express框架,并且我有以下架构:varDocumentSchema=newSchema({name:String,description:String,parent:{type:Schema.Types.ObjectId,ref:"Document"},children:[{type:Schema.Types.ObjectId,ref:'Document'}]});我正在尝试获取子级的动态层次结构树,但我找不到任何合适的解决方案。是否可以使用此架构来做到这一点?如果不是,我应该使用什么模式结构? 最佳答案

node.js - Mongoose 批量插入错误

我在node.js上工作,我正在使用mongoose批量插入方法,即model.collection.insert在MongoDB中插入数据.执行此方法时会出现以下错误:但是数据插入数据库成功了。有人能告诉我为什么会出现此错误吗?{[MongoError:writeoperationfailed]name:'MongoError',message:'writeoperationfailed',driver:true,code:11000,writeErrors:[{code:[Getter],index:[Getter],errmsg:[Getter],getOperation:[Fu

javascript - 在导出的 Mongoose 模型中使用 Mongoose 模式函数

我最近一直在研究一个身份验证系统,如果不存在具有给定ID的用户,它应该创建一个新用户或加载一个具有现有ID的用户。我也已经想通了,您可以使用返回ID中是否存在用户User.count({_id:id},function(err,count){if(count>0){//Userexists,continuewithloadingdata}else{//Userdoesnotexist,createone}});User是一个导出的Mongoose模型mongoose.model('User',UserSchema);如果我现在在我的app.js中创建一个函数existsWithId(i

javascript - 如何在 mongoose 中使用 $set 动态更新嵌入式文档

我正在尝试创建一个函数来更改具有给定位置的嵌入式MongoDB文档(包含在数组中)的值。removeAddress(accountNumber,position){constremove=Account.findOneAndUpdate({accountNumber:accountNumber},{$set:{`mailingAddress.${position}.active`:false}})returnPromise.resolve(remove);}我尝试使用es6字符串插值mailingAddress.${position}.active和"mailingAddress."+