Tag: mongodb

Mongodb保存到嵌套的对象?

我无法将我的req.body插入到我的mongodb集合中。 我有这条路线,触发add方法和里面我试图找出一个查询来保存req.body到一个嵌套的集合数组 router.post('/api/teams/:tid/players', player.add); add: function(req, res) { var newPlayer = new models.Team({ _id: req.params.tid }, req.body); newPlayer.save(function(err, player) { if (err) { res.json({error: 'Error adding player.'}); } else { console.log(req.body) res.json(req.body); } }); } 这是一个示例文件 [ { "team_name":"Bulls", "_id":"5367bf0135635eb82d4ccf49", "__v":0, "players":[ { "player_name":"Taj Gibson", "_id":"5367bf0135635eb82d4ccf4b" }, { "player_name":"Kirk Hinrich", "_id":"5367bf0135635eb82d4ccf4a" } ] } ] […]

如何在嵌套数组中插入新字段

嘿家伙,我可能知道是否有可能在嵌套数组中插入新的字段? 例如像这样的嵌套数组。 "comments" : [ { "name" : "john", "title" : "Facebook", "content" : "LOLOLOLOL", "votes" : { "up" : [ ], "down" : [ ] }, "date" : ISODate("2014-04-24T17:39:49.782Z"), } ], 是否有可能更新这个嵌套数组与新的领域,所谓的“分数”? 像这样的东西。 "comments" : [ { "name" : "john", "title" : "Facebook", "content" : "LOLOLOLOL", "votes" : { "up" : [ ], "down" […]

如何在nodejs中检查数据againts xss?

我使用nodejs作为后端,并将数据存储在MongoDB中。 我感兴趣的是如何在保存到数据库之前检查包含数据的数据。 我需要检查像纯string: "some xss test" 和string的对象: { "name": "xss name", "age": 25 } 我应该使用什么库来完成我的任务?

mongoose – 得到新保存的内部logging的_id

有一个带有子文件的mongoose模式。 我希望能够在父保存之后推送子文档并处理新创build的内部项目。 有没有简单的方法来获得一个新创build的内部项目的_id ? 这里是代码: var trackSchema = mongoose.Schema({ title: String }); var userSchema = mongoose.Schema({ displayName: String, tracks: [trackSchema] }); var Track = mongoose.model('Track', trackSchema); var User = mongoose.model('User', userSchema); var track = new Track({ title: 'Sunrise' }); user.tracks.push(track); // assume 'user' was returned by User.findById() user.save(function (err, userUpdated) { // … is there […]

$ geoWithin查询表单mongodb到mongoose语句

从mongodb获得这个查询: db.location.find( {loc: { $geoWithin: { $centerSphere: [ [ 9, 9], radius ] } }, action:1 }) .limit(10) .skip(1, function(err, result) { console.dir(result); }); 如何将它翻译成使用geoWithinmongoose声明?

如何区分经过身份validation的用户在客户端与Passport和node.js?

我使用Passport.js与MongoStore进行身份validation,我使用express作为Web框架。 一旦用户login,他就可以访问某个路线上的内容。 我想提供不同的内容,取决于哪个用户已authentication 。 比方说,在Mongo的members集合中,每个members都拥有一个category或privileges属性,然后我将决定向他展示什么。 我将使用AngularJS来绑定和呈现HTML。 这是我的路线pipe理: app.get('/',function (request, response) { if(request.isAuthenticated()) response.redirect('/admin') else response.sendfile("public/index.html") }) app.get('/admin',function (request, response) { if(request.isAuthenticated()) response.sendfile("views/admin.html") else response.redirect('/') }) app.post('/login', passport.authenticate('local', { successRedirect: '/admin', failureRedirect: '/' }) ) app.get('/logout', function (request, response){ request.session.destroy(function (err) { response.redirect('/'); //Inside a callback… bulletproof! }) }) app.get('*',function (request, response) { response.redirect('/') }) 这是我的Passport.js代码: […]

Epehmeral集合

每次启动我的应用程序时,我都想清除几个集合。 问题是,因为我使用的是PaaS( http://modulus.io ),所以实例可以经常启动和停止。 如果我在启动时执行了clients.remove({}) ,则即使有一个实例死亡并重新启动,整个集合也将被清除。 什么是最好的方式有一个短暂的集合,只有当应用程序第一次启动时才被清除? 这不是Meteor或Modulus或Mongo特有的问题,但可以应用于此情况下的任何Node应用程序。

在单个mongoose命令更新多个文件

我有以下collections [ { a : 'One', b : 'Two' }, { a : 'Three', b : 'Four' } ] 我想在单个查询中更新集合,以便我将子集“编号”附加到集合中每个文档的每个“a”属性。 结果收集应该是: [ { a : 'Onenumberd', b : 'Two' }, { a : 'Threenumbered', b : 'Four' } ] 我怎样才能实现在单mongoose查询相同?

TypeError:无法调用未定义的方法“get”

我尝试使用express.js在node.js上创build一个简单的CRUD应用程序。 我尝试连接到数据库,但我有一个错误TypeError: Cannot call method 'get' of undefined 。 我的部分代码: app.js var mongo = require('mongodb'); var monk = require('monk'); var db = monk('localhost:27017/notepad'); var app = express(); app.get('/users', routes.userlist); // mongoDB app.use(function (req, res, next) { req.db = db; // this is setting up db property to request next(); }); 路线/ index.js exports.userlist = function […]

当它不应该时,mongoose发现总是返回真实

我正在使用Mongoose.js来连接我的Mongo数据库。 这个函数search我的Location名称,应该是not found的控制台而不是found ,因为我没有名称!@£ 。 Location.find({name: "!@£"}, function(err, obj) { console.log(obj); if (!err) { console.log("found"); } else { console.log("not found"); } }); 这是注销到我的控制台: [] found 预期的行为应该是它not found控制台日志。 以下是Location模型数据的转储: [ { "_id":"5384c421af3de75252522aa2", "name":"London, UK", "lat":51.508515, "lng":-0.12548719999995228, "__v":0, "modified":"2014-05-27T16:58:09.546Z", "search_count":1 }, { "_id":"5384c766af3de75252522ab4", "name":"Paris, France", "lat":48.856614, "lng":2.3522219000000177, "__v":0, "modified":"2014-05-27T17:12:06.990Z", "search_count":1 }, { "_id":"53851a213a33fe392b758046", "name":"Zagreb, Croatia", "lat":45.8150108, "lng":15.981919000000062, […]