Articles of mongoose

select当月有生日的所有用户

我刚开始学习NodeJs + MongoDB(Mongoose)。 查询有问题。 我需要select当月有生日的所有用户 。 用户架构: const UserSchema = new mongoose.Schema({ email: { type: String, unique: true, required: true, index: true }, password: { type: String, required: true }, firstName: { type: String, required: true }, lastName: { type: String, required: true }, phone: { type: String, required: true }, birthday: { type: Date, […]

防止用户再次loginpassportjs,如果他们被authentication一次?

我正在使用PassportJS,注册和loginfunction工作相当顺利。 我唯一遇到的问题是PassportJS(我正在使用会话),即使用户已经login,他们可以再次返回到注册/loginurl,并进行注册和/或login! 这是诱惑我。 如果有人有修正/build议,请放下。 更新 – 1 一瞥我的routes.js :(使用PassportJS以及routes.js -ensure-login。 app.get('*', function(req, res, next) { if (req.url.indexOf('/users/login') < 0 && req.url.indexOf('/users/signup') < 0) { req.session.returnTo = null; } next(); }); // ===================================== // HOME PAGE (with login links) ======== // ===================================== app.get('/', sabSettings, function(req, res) { Setting.findOne(function(err, setting) { if (err) throw err; // console.log(setting); […]

打破mongoose的蓝鸟诺言链

我已经研究了几个相关的问题和答案,仍然无法find我想要做的解决scheme。 我正在使用Mongoose和Bluebird来承诺。 我的承诺链包含3个部分: 通过用户名获取用户1 如果find用户1,则通过用户名获取用户2 如果find用户1和用户2,则存储新的logging 如果步骤1或步骤2无法返回用户,我不想执行步骤3.但是,无法返回用户不会导致数据库错误,因此我需要手动检查有效的用户。 我可以在步骤1中使用Promise.reject() ,它会跳过第2步,但仍然会执行第3步。其他答案build议使用cancel() ,但我似乎无法做到这一点。 我的代码如下。 (我的函数User.findByName()返回一个promise。) var fromU,toU; User.findByName('robfake').then((doc)=>{ if (doc){ fromU = doc; return User.findByName('bobbyfake'); } else { console.log('user1'); return Promise.reject('user1 not found'); } },(err)=>{ console.log(err); }).then((doc)=>{ if (doc){ toU = doc; var record = new LedgerRecord({ transactionDate: Date.now(), fromUser: fromU, toUser: toU, }); return record.save() } else […]

如何解决“TypeError:callback.apply不是一个函数”?

我正在做一个大学项目,我已经阅读了关于我的问题的每一个post,但我还没有find解决办法。 也许你可以帮我。 代码如下: viewerObj.update({_id: currentIDViewerVar} , {minutesWatched: 5},{upsert:true} , function (err,result) { if (err) throw err; console.log("Viewer " + userNameVar + " gespeichert"); console.log("minsWatched" +minsWatched); }); 我得到以下错误。 我看不出我做错了什么。 events.js:160 throw er; // Unhandled 'error' event ^ TypeError: callback.apply is not a function at C:\Users\picco\Desktop\TwitchWatcher_v19\TwitchWatcher\node_modules\mongoose\lib\model.js:3388:16 at Query.callback (C:\Users\picco\Desktop\TwitchWatcher_v19\TwitchWatcher\node_modules\mongoose\lib\query.js:2185:9) at C:\Users\picco\Desktop\TwitchWatcher_v19\TwitchWatcher\node_modules\mongoose\node_modules\kareem\index.js:259:21 at C:\Users\picco\Desktop\TwitchWatcher_v19\TwitchWatcher\node_modules\mongoose\node_modules\kareem\index.js:127:16 at _combinedTickCallback (internal/process/next_tick.js:67:7) at […]

你怎么知道你的MongoDB中新增了数据

我有一个nodejs服务器在Web界面上运行女巫显示数据。 数据是使用mongoose从MongoDB获取的。 数据是通过一个节点红色应用程序巫婆与其他人隔离添加的。 目前我的nodejs服务器每隔5秒取一次数据。 有没有办法知道我的MongoDB中的数据是否已经改变? 谢谢,我希望我的问题很清楚。

mongoose只回推插入推

我怎样才能回顾客户端数组插入的对象,我插入,然后在callback我有所有的客户端,我只想插入。 User.findOneAndUpdate( {_id: req.body.id }, { $push: { clients: { name: req.body.name, tel: req.body.tel, itens: req.body.itens } } }, {safe: true}, function(err, model) { if(err){ console.log(err); } if(!model){ console.log('Not Found') } var itens= model.itens; //print all clients i wanna to print only the inserted console.log(itens); } );

有Mongoose限制子文档的MongoDB

谈到MongoDB和Mongoose,我是一个noob,所以请原谅我… 我正在使用Express和Mongoose一起使用Node。 我有一个大量的子文档的文档,以至于当我试图加载所有的子文档时,我的服务器耗尽内存。 所以我想select一个子文档的最后30个项目。 这是我现在所拥有的,然后猜测我想要的是什么… Device.findOne({ device_id: deviceId }, (err, device) => { …. }) 这是一个猜测 Device.findOne({ device_id: deviceId }, { movements: { $slice: 30 } }, (err, device) => { …. }) 任何帮助将是可怕的,在此先感谢!

Mongoose:“TypeError:”监听器“参数必须是一个函数”连接

我试图用typecript 2.2.1,expression4.15.2和节点v7.7.2使用Mongoose ,但是当我尝试连接到MongoDB它会引发此错误: TypeError: "listener" argument must be a function at Socket.once (events.js:307:11) at Socket.connect (net.js:943:10) at Socket.connect (/home/fabian/Projects/Huis-Pils/node_modules/async-listener/index.js:76:27) at Object.exports.connect.exports.createConnection (net.js:76:35) at Connection.connect (/home/fabian/Projects/Huis-Pils/node_modules/mongodb-core/lib/connection/connection.js:399:11) at Pool.connect (/home/fabian/Projects/Huis-Pils/node_modules/mongodb-core/lib/connection/pool.js:638:16) at Server.connect (/home/fabian/Projects/Huis-Pils/node_modules/mongodb-core/lib/topologies/server.js:384:17) at Server.connect (/home/fabian/Projects/Huis-Pils/node_modules/mongodb/lib/server.js:361:17) at open (/home/fabian/Projects/Huis-Pils/node_modules/mongodb/lib/db.js:226:19) at Db.open (/home/fabian/Projects/Huis-Pils/node_modules/mongodb/lib/db.js:249:44) at NativeConnection.doOpen (/home/fabian/Projects/Huis-Pils/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:58:11) at NativeConnection.Connection._open (/home/fabian/Projects/Huis-Pils/node_modules/mongoose/lib/connection.js:531:15) at /home/fabian/Projects/Huis-Pils/node_modules/mongoose/lib/connection.js:289:11 at new wrappedPromise (/home/fabian/Projects/Huis-Pils/node_modules/async-listener/index.js:372:16) at NativeConnection.Connection.open (/home/fabian/Projects/Huis-Pils/node_modules/mongoose/lib/connection.js:288:17) […]

是否有可能返回多个子文档mongoDB和Node.js?

我目前有一个模式,目前看起来像: var User = new Schema({ id: String, firstName: String, lastName: String, password: String, username: String, position: [{ title: String, location: String, start: String, term:Number, description:String, date: {type: Date, default: Date.now} }] }); 我有两个用户,每个都有两个embedded式位置文档。 用户1: "position" : [ { "title" : "Web Developer", "location" : "Dublin", "start" : "May 2017", "term" : 6, "description" : […]

Mongoose在聚合中使用子查询来总结数据

我是mongoose新手。 我有这样的模型。 var ForumSchema = new mongoose.Schema({ User_id : {type : Schema.Types.ObjectId, ref : 'User'}, Title : {type : String}, Content : {type : String}, Tags : [{type : String}], isPublic : {type : Boolean, default : false}, Vote : [{ User_id : {type : Schema.Types.ObjectId, ref : 'User'}, Kind : {type : Boolean} }], […]