草庐IT

model-validation

全部标签

node.js - 在 mongoose 中,model.save 是增量的原子还是我应该始终使用 $inc?

我需要在MongoDB和mongoose中增加记录的likes字段,但我有点“担心”这些操作的原子性,因为这应该是并发安全的:Post.findById(id,function(err,post){post.update({$inc:{likes:1}});});对比Post.findById(id,function(err,post){post.likes++;post.save()});它们是否提供相同的安全结果?想一想我什至必须减少记录的点赞数(例如,如果用户再次点击点赞按钮)Post.findById(id,function(err,post){post.update({$in

javascript - Mongoose - Model.deleteOne() 正在删除整个集合而不是单个文档

我有一个包含客户数组的用户模型。我想根据customer_id删除特定客户。根据我在Mongoose文档中阅读的内容,我应该使用Model.deleteOne删除单个文档。这是我的尝试用户架构(为简洁起见已缩短):constmongoose=require('mongoose');constUserSchema=newmongoose.Schema({username:{type:String,default:''},password:{type:String,default:'',},registerDate:{type:Date,default:Date.now()},custom

validation - 使用 Backbone.js 验证时如何处理异步调用(特别是唯一性)

这与使用Backbone的客户端或服务器端应用程序相关。我正在尝试创建一个验证函数,对MongoDB或某些REST调用(取决于环境)进行唯一性检查。这两个调用本质上都是异步的;但是,我认为我实际上需要将其阻止在这里以进行验证。如果我不返回任何内容,验证函数将假定验证已通过。我的代码目前在服务器端看起来像这样:isUnique:function(key){vardfdFindOne=this.findOne({key:this.get(key)}),dfd=newDeferred();dfdFindOne.done(function(err,result){console.log(res

node.js - Mongoose:如何通过 model.findOneAndUpdate() 检查文档是否被修改

在mongoose中,我们可以使用model.update()检查更新操作是否修改了文档:model.update(query,update,function(err,raw){if(raw.nModified>=1)console.log('documentismodified!')});有没有办法对model.findOneAndUpdate()做同样的事情?model.findOneAndUpdate(query,update,{new:true},function(err,doc){if(doc){//SoMongoDBfoundthedocument,butisthereaw

node.js - 蒙哥错误: selector must be a valid JavaScript object

我正在为nodejs使用mongodb驱动程序。我在更新记录时遇到错误。{"name":"MongoError","message":"selectormustbeavalidJavaScriptobject","driver":true}这是我的脚本:MongoClient.connect(url,function(err,db){if(err){console.log('UnabletoconnecttothemongoDBserver.Error:',err);return;}varcollName="bank";varSelectParas={"name":"ABC"};var

scala - 玩! framework 2.0 scala - ClassCastException : models. MyModel 无法转换为 models.MyModel

这是我的第一个play2.0应用程序,scala对我来说还是很新,所以我可能在某个地方犯了错误。我正在使用一个非常新的插件,它捆绑了Salat和Casbah:https://github.com/leon/play-salat我简化并重命名了所有内容以使其通用。我的观点(views/MyController/search.scala.html):@(modelList:List[models.MyModel])@main(title="SearchMyModel"){@for(a@a.field@a.field2}}我的Controller(controllers/MyControll

ruby-on-rails - Rails - Mongoid : newly added fields in model giving nil for old data objects

我有如下模型:classUserincludeMongoid::Documentfield:nameend将一些用户对象保存到数据库后,我添加了更多字段:classUserincludeMongoid::DocumentincludeMongoid::Timestamps::Createdfield:namefield:birthdateend现在,我希望我可以使用以下代码段:@user=User.all@user.eachdo|u|putsu.nameputsu.birthdate.strftime(#someFormat)putsu.created_at.strftime(#som

node.js - Mongoose Model.aggregate 流

标准的流媒体方式似乎在Mongoose4.4.2下不起作用:varstream=someModel.aggregate([]).batchSize(100).stream()它在batchSize和stream上抛出,说它们是未定义的。但是以下似乎有效:varstream=someModel.aggregate([]).cursor({batchSize:100}).exec();它似乎以类似的方式运行。这是从.aggregate()流式传输结果的正确方法吗? 最佳答案 不,亲爱的,您不能直接创建批量/批处理,您必须获得一些包装器/

node.js - Loopback ValidationError : The `Role` instance is not valid. 详细信息: `name` 已存在(值: "admin")

我是loopback的新手,但是我按照步骤在server/boot/中安装和构建了我的文件夹(loopback-server),我创建了一个文件script.js并包含了以下代码:module.exports=function(app){varMongoDB=app.dataSources.MongoDB;MongoDB.automigrate('Customer',function(err){if(err)throw(err);varCustomer=app.models.Customer;Customer.create([{username:'admin',email:'admin

node.js - Mongoose 预保存 Hook 正在触发,但未保存其他字段(不使用 model.update)

我试图在我的模式中实现一个计数器来获取下一个问题编号。我已经将它实现为Mongoose中的钩子(Hook)预保存钩子(Hook),一切看起来都很好......除了实际的“数字”字段不会更新。我可以很容易地通过记录到控制台的内容来判断Hook正在触发,甚至该字段似乎也已分配。但遗憾的是,无论我尝试什么,“数字”字段都不会出现在结果中。我看到了几个与MongooseHook相关的问题,但它们似乎都与我没有使用的findOneAndUpdate等相关。这是我的完整模型,底部有钩子(Hook):varmongoose=require('mongoose');varSchema=mongoose