Tag: mongodb

Mean Stack MissingSchemaError:架构尚未注册模型“User”

我已经尝试了许多堆栈溢出解决scheme,但没有在我的情况下工作…这是我的代码… server.js这是我的应用程序的入口点。 process.env.NODE_ENV = process.env.NODE_ENV || 'development'; var config = require('./config/config'), mongoose = require('./config/mongoose'), passport = require('./config/passport'), express = require('./config/express'); var passport = passport(); var db = mongoose(), app = express(); app.listen(config.port); module.exports = app; console.log(process.env.NODE_ENV + ' server running at http://localhost:' + config.port); 我的config.js是 module.exports = require('./env/' + process.env.NODE_ENV + '.js'); Mongoos.js var config […]

在第一个参数中将variables传递给mongoose中的查询

我正在使用MEAN堆栈,在我的MongoDB中有一个这样的条目 { "_id" : ObjectId("5577467683f4716018db19ed"), "requestMatrix" : { "1698005072" : { "rideId" : "641719948", "status" :"accepted" },"1698005073" : { "rideId" : "641719545", "status" :"rejected" } }, "partners":[ { "customerNumber" : 1698005072 }, { "customerNumber" : 1698072688 } ]} 我想查询数据库根据状态是否被接受或拒绝返回给我这整个文档。 当我在命令提示符中运行下面的查询时,我得到了预期的答案 db.joinedrides.find({'requestMatrix.1698005072.status':"accepted"}) 但是当我想要从nodeJs做同样的事情时,我被困在上面的查询中的数字1698005072是一个variables,我不能写一个查询。 尝试过这样的事情 var criteria = "'requestMatrix.'"+customerNumber+"'.status'"; JoinedRide.find({criteria:"accepted"},function(err,joinedRides){ }) 其中customerNumber将根据不同的请求而变化,在上述情况下,其值是1698005072 任何帮助表示赞赏。

节点mongoose总是在findOne上返回错误

我使用passport.js来login用户,每当我的本地身份validationfunction到达User.findOne(),它总是返回一个错误。 我不知道我在做什么错… 我的护照代码与findOne()调用: passport.serializeUser(function(user, done) { console.log('serialize user occurred'); done(null, user.id); }); // used to deserialize the user passport.deserializeUser(function(id, done) { User.findById(id, function(err, user) { done(err, user); }); }); passport.use('local-signup', new LocalStrategy({ // by default, local strategy uses username and password, we will override with email usernameField : 'email', passwordField : 'password' }, function(email, password, […]

如何在Node.js中使用MongoDB $ slice

我正在使用Node.js应用程序中的monk与MongoDB进行通信。 有没有办法使用修剪驱动程序的$ slice修饰符。 我想运行的查询是 db.messages.find( {"_id" : ObjectId("557c46191e7aef1b02d5db73")}, { msgs: { $slice: -2 } } );

将新项目推送到JSON数组中

假设这是我收集的表格: { "_id" : ObjectId("557cf6bbd8efe38c627bffdf"), "name" : "John Doe", "rating" : 9, "newF" : [ "milk", "Eggs", "Beans", "Cream" ] } 一旦用户input了一些内容,它会被发送到我的节点服务器,然后我的节点服务器将这个项目添加到列表"newF" ,然后发送回我的MongoDB并保存。 我试图使用更新,它可以成功地更改此表中的值,但我不知道如何将新项目添加到该列表。 我在MongoDB shell使用了$push ,但不知道如何在节点上执行它。 这是我的代码片段: db.collection('connlist').update({ _id: new ObjectId("e57cf6bb28efe38c6a7bf6df")}, { name: "JohnDoe", rating: 9, newF: ["Milk, Eggs", "Beans"] }, function(err,doc){ console.log(doc); });

Mongoose模式创build错误

当我运行mongoose + node.js时,我有一个关于Mongoose模式创build的问题当我运行应用程序时,出现以下错误: Users/tyrant/workspace/myworkspace/nodeProjects/imooc/schemas/movie.js:3 var MovieSchema = new mongoose.Scheme({ ^ TypeError: undefined is not a function at Object.<anonymous> (/Users/tyrant/workspace/myworkspace/nodeProjects/imooc/schemas/movie.js:3:19) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) at require (module.js:384:17) at Object.<anonymous> (/Users/tyrant/workspace/myworkspace/nodeProjects/imooc/models/movie.js:2:19) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) […]

将数组与包含对象的数组进行比较

这是我的集合架构: var objectSchema = new Schema({ members: [{ user_id: ObjectId, settings: { type: Boolean } }], title: String }); 现在我试图search具有特定成员的对象(由其“user_id”标识,例如[“asdf123lkd”,“asdf1223”])。 有什么方法可以search这些对象吗? 谢谢!

查询数据库时出现asynchronous瀑布问题

我构build了一组对象从csvstream保存在mongoDB中。 对于每个csv行,我需要在保存之前validation一个或多个对象在MongoDB中不存在。 下面的代码在GETpath中运行。 我一直在尝试使用asynchronous瀑布,但它不像我预期的那样。 这是代码 async.waterfall([ function (callback) { console.log('in function 1'); –> Diagnosis.findOne({name: diagnosisName}, function (doc){ console.log(JSON.stringify(doc)) }) callback(null); }, function (callback) { console.log('in function2') callback(null) }], function(err, results) { console.log('finished!') res.send("complete"); }) 我希望这会返回以下内容 在function1中 doc对象在JSON中 在函数2中 完了! 而是我得到 在函数1中 在函数2中 完了! 空值 只要没有findOne()调用,它就按预期运行。 我在想什么? 非常感激

使用Node和Angular从Last.fm API获取search结果

我正在尝试使用node-lastfmapi track.search方法。 我能够得到结果,但我不确定如何使用Angular在前端显示它们。 我为数据库使用mongoDB,并为用户想要select并希望保存的特定search结果创build了一个模式。 但在此之前,用户需要查看search结果。 那么怎样才能显示Express.js从第三方API查询这些结果呢? 这是迄今为止我写的代码 app.post('/api/shows', function(req, res, next) { var trackName = req.body.trackName; //search bar which gets trackName user enters lfm.track.search({ 'track' : trackName }, function (err, track) { if(!track.album.title) { return res.send(404, { message: req.body.trackName + ' was not found.' }); } });

如何在sails中使用MongoDB而不是waterline

我有一个大约有600000条logging的数据库。 我正在使用sails.js,但是当我用水线方式获取数据需要很长的时间来获取600000条logging(约17秒),并有限的查询,即它没有访问连接表。 所以我join了两个查询的结果,然后过滤掉这个数据就花了很多的时间。 所以我决定使用MongoDB来代替水线,而我想知道是否可以在不连接到Waterline模型的情况下使用Blueprint API。 如何使用MongoDB而不是水线?