草庐IT

Mongoose-auth

全部标签

node.js - 在客户端和服务器 Mongoose 模型之间共享 typescript 接口(interface)

我试图在客户端代码和服务器代码之间共享一些基本接口(interface)。我在使用接口(interface)在Mongoose中创建数据模型时遇到问题。我遇到的问题是如何访问客户端中的document._id属性。我无法在不导致编译错误的情况下将_id添加到用户界面,而且我无法在不声明的情况下访问_id。我的项目布局:/src-/client--/user.service.ts-/server--/models---/user.model.ts-/common--/common.d.ts用户服务.tsimport{User}from'common'deleteUser(user:Use

node.js - mongoose 和 bcrypt-nodejs 不散列和保存密码

我正在使用bcrypt-node和mongoose来散列用户密码并将该用户保存到mongo数据库中。当我调试下面的代码时,它似乎工作正常,当您在代码中记录密码时,它显示它是散列的,但是当您检查数据库时,它仍然是纯文本。我对node和mongoose/mongodb比较陌生,所以我不确定如何排除故障。我尝试按照另一篇文章中的建议将调用next();更改为returnnext(user);但这没有帮助。任何帮助将不胜感激。我正在使用Node版本6.9.5、mongoose4.7.0、bcrypt-nodejs0.0.3和mongo3.2.10UserSchema.pre('save',fu

node.js - 使用 Mongoose 计算 Mongodb 中多个集合的大小

我需要计算两个集合(设备、房间)内的文档数量。我将设备架构和房间架构中的详细信息保存为单独的集合。如何查询这两个集合并返回文档数? 最佳答案 您可以尝试使用count():vardevicesCountQuery=DevicesModel.count();varroomsCountQuery=RoomsModel.count();使用mongo你必须做两个单一的查询。您可以使用Promise.all()(Mongoose支持promises)将其包装在单个调用中:Promise.all([DevicesModel.count().e

mongodb - Mongoose $lookup 其中 localField 是 foreignField 中 ObjectId 的字符串

我想执行$lookup,其中localField是ObjectId的字符串表示形式,而外部字段是实际的ObjectId。如果items是字符串值但_id是ObjectId,MongoDB3.2是否可行?[{"$lookup":{"from":"videos","localField":"items","foreignField":"_id","as":"appendedItems"}}] 最佳答案 mongodb3.2版本的$lookup中无法匹配String与ObjectId,有一些ticketsopenedforthisissu

json - 修改 Mongoose 返回的对象

我一直在研究Mongoose文档,但找不到实现我想要做的事情的方法。考虑一个MongoDB用户集合。还要考虑一个MongooseUserSchema,它具有在数据库集合中找到的所有字段。现在,我想登录到控制台,所有用户,但属性已更改。有点像:Users=mongoose.UserSchema;ApiUserSchema;Users.find(function(err,users){//foreachuserthatmongoosefinds,//IwanttoconvertfromUserSchemato"ApiUserSchema"//Somethinglikethefollowin

javascript - Mongoose - 检测重复字段

我有包含2个唯一字段(电子邮件和用户名)的用户模式,当我尝试使用重复字段创建新用户时出现该错误{"error":{"code":11000,"index":0,"errmsg":"E11000duplicatekeyerrorcollection:InstaClone.usersindex:email_1dupkey:{:\"baidario.ua@gmail.com\"}","op":{"hashedPassword":"$2a$10$eaMym5AMibJlGOSBV3/DHOXPhSoMMDTNwxGcSOn4tEPg07htyQ2Ey","email":"baidario.ua

node.js - Mongoose bulkWrite - 'q' 的错误类型

对于我的测试套件,我想在数据库中批量写入测试信息,然后批量删除在整个测试过程中输入的任何测试信息以恢复到干净状态。为此,我在数据库上运行bulkWrite,我将通过nodeJS的require语句加载的JSON文件的内容传递给该数据库。问题是对于数据集[{deleteOne:{username:'test-author'}}]传递给models[key].collection.bulkWrite(action[key]),其中key是感兴趣的模型的名称,action是JSON文件,我收到以下错误:{MongoError:Wrongtypefor'q'.Expectedaobject,g

node.js - Mongoose ,根据外键/填充键排序

我有两个带有mongoose的模式(AgendaCompromissoSchema和profissionaisSchema)。我想找到一组按profissional.name降序排列的所有AgendaCompromisso。我更喜欢单独的模式而不是嵌套文档。我已经尝试了下一个代码但没有成功。router.get('/',function(req,res,next){AgendaCompromisso.find({}).populate('profissional',name')//hereI´dliketheresultssortedby'name'descending.sort:{'

mongodb - 是否可以创建一个 Mongoose Hook 以将投影应用于所有查询

我想阻止用户每次请求他们的信息时通过网络发送用户的加密密码。我知道在mongo中我可以应用投影来实现这一点db.users.findByID(_id,{password:0})但我更希望有某种.pre()Hook,它将应用于每个查询。这或功能等价物是否可能? 最佳答案 您可以使用select配置一个字段,使其默认从查询中排除:letUserSchema=newSchema({...password:{type:String,select:false},...});如果您确实需要返回该字段,您可以在每个查询的基础上覆盖它:db.use

node.js - Mongoose 中的多文档更新插入

你好,这是我的问题,varpoolSchema=mongoose.Schema({"topic_id":{type:Number,default:null,required:true},"document_id":{type:String,default:null,required:true},"project":{type:String,default:false,required:true},"createddate":{type:Date,default:Date.now}},{collection:"sorguHavuzu"});我有一个池文档数组,每个项目都有不同的字段值,如