草庐IT

Mongoose-auth

全部标签

node.js - 如何在没有回调的情况下返回 Mongoose 查询结果

我有一个结构化的应用程序:索引>路由>端点>核心,其中端点处理请求以发送响应,核心访问数据库。将Controller分为这两个组件的目的部分是为了在数据库更改后使事情正常工作,部分是为了简化我的代码。问题是我只能通过回调在我的模块中获取Mongoose查询函数的结果,这根本不会简化我的代码。我想要什么:varuser=coreModule.findUser({id:123})//returnuservarposts=coreModule.findPosts({author:123})//returnpostsarrayres.render("home",{user:user,posts

javascript - 如何强制 Mongoose Save() 调用同步

我正在用Node.js编写一个脚本,它需要执行以下操作:打开XML文件对于文件中的每个节点执行mongodb查找以尝试查找与此节点相关的对象如果找不到对象,则创建它,否则以某种方式操作找到的对象将(可能是新的)对象保存回数据库。转到第2步我已经研究了一段时间,得出的结论是,使用异步mongodb几乎不可能做到这一点。问题是多方面的,但是例如,如果您要处理20,000个这样的节点,那么异步执行会挂起脚本。但是,由于第4步需要查看对象是否已经存在,因此将它们作为批量插入进行是不可行的。可以将一些可怕的东西拼凑在一起,缓存创建的对象,然后将它们保存为类似于步骤7的内容,但这会很困难,因为对象

javascript - 如何知道 Mongoose 的 upsert 是否创建了新文档?

我在node.js/express.js中有这段代码:varUser=mongoose.model('User');varusersRouter=express.Router();usersRouter.put('/:id',function(req,res){req.body._id=req.params.id;varusr=newUser(req.body);usr.validate(function(err){if(err){res.status(400).json({});return;}varupsertData=usr.toObject();deleteupsertData

mongodb - Mongoose:如何在模式方法中访问 select:false 属性?

快速代码:varuserSchema=newmongoose.Schema({username:String,password:{type:String,select:false}});userSchema.methods.checkPassword=function(password,done){console.log(password);//Passwordtocheckconsole.log(this.password);//storedpassword...};我不希望默认情况下可以访问密码,但我需要一种方法来在验证用户身份之前检查用户输入的密码。我知道我可以对数据库进行查询以

node.js - MongoDB/Mongoose 索引使查询更快还是变慢?

我有一个这样的文章模型:varArticleSchema=newSchema({type:String,title:String,content:String,hashtags:[String],comments:[{type:Schema.ObjectId,ref:'Comment'}],replies:[{type:Schema.ObjectId,ref:'Reply'}],status:String,statusMeta:{createdBy:{type:Schema.ObjectId,ref:'User'},createdDate:Date,updatedBy:{type:Sc

node.js - Mongoose for var in loop 在子文档中

我用mongooseSchema创建了这个模式:socialAccount=newSchema({socialNetwork:{type:String,required:true},userid:{type:Number,required:true},username:String},{_id:false});person=newSchema({id:{type:Number,unique:true,required:true,dropDups:true},firstname:String,lastname:String,socialAccounts:[socialAccount],u

node.js - 未创建 Mongoose 复合索引(太长)

我在MongoDB中的一个架构上创建多个复合索引时遇到了一些问题。使用MongoLab时,我知道由于命名问题,有些索引过长时不会创建。所以我怀疑这可能是一些没有创建的原因varSchema=newmongoose.Schema({...});//CreatedSchema.index({one:1,three:1});//NotCreatedSchema.index({one:1,two:1,three:1,four:1,five:1,six:1,seven:1,eight:1,nine:1,ten:1}); 最佳答案 默认索引名称

node.js - Mongoose promise 与 bluebird 和 typescript

我正在使用nodejs/typescript和mongodb数据库开发应用程序。要查询数据库,我使用mongoose.我刚刚阅读了howtopluginanexternalpromiselibrary上mongoose文档中的一篇文章而且很简单:importmongoose=require("mongoose");importPromise=require("bluebird");mongoose.Promise=Promise;这样做效果很好。但我想扩展/覆盖返回的promise类型。这是一个函数的例子:publicgetModel=()=>{returnMyModel.findOn

node.js - Mongoose populate() 返回没有错误的空数组

我一直试图让这个填充的东西工作,但我遇到了问题,因为我没有得到预期的结果,也没有错误可以处理。只是一个空数组。我的模型看起来像这样。每个人都有自己的文件varmongoose=require('mongoose');varupgradeSchema=newmongoose.Schema({type:{type:String,default:"Any"},ability:String,ability_desc:String,level:Number,tag:String});mongoose.model('Upgrade',upgradeSchema);和其他varmongoose=re

node.js - Mongoose 从不连接到 mongodb

我正在尝试在AmazonEC2Linux服务器上使用Mongoose连接到MongoDB。这是我的代码:varmongoose=require('mongoose');console.log("Attemptingantyhingtodowithmongoose");//shownvardb=mongoose.connection;db.on('error',console.error.bind(console,'dbconnectionerror:'));//notshowndb.once('open',function(){console.log("Successfulconnec