Tag: mongoose

正确的方法来添加一个朋友路线在node.js和mongoose?

我打算创build一个用户可以添加另一个用户作为他/她的朋友的路线,以便他们可以在他们成为朋友之后相互聊天。 所以基本上一旦用户A向用户B发送请求,用户B将通过socket.io得到关于该请求的实时通知 现在的问题是,我不能拿出我自己的解决scheme,如何实现上述情况,从我所知道的,我应该创build两个路线GET和POST 我正在使用mongoose进行数据库查询,插入,更新和删除 这是我的代码 // GET route for getting the user's information — Simple route router.get('/users/:facebook_name', function(req, res) { User.findOne(facebook_name, function(err, user) { if (!user) { res.json({message: "Couldn't find a user by that name"}); return; } res.json(user); }); }); // POST route for adding a friend router.post('/friendships/create/:facebook_name', ensureAuthenticated, function(req, res) { // What should […]

mongoose,通过填充字段sorting查询

据我所知,可以用Mongoose( source )对填充的文档进行sorting。 我正在寻找一种方法来sorting一个或多个填充字段的查询。 考虑这两个mongoose模式: var Wizard = new Schema({ name : { type: String } , spells : { [{ type: Schema.ObjectId, ref: 'Spell' }] } }); var Spell = new Schema({ name : { type: String } , damages : { type: Number } }); 示例JSON: [{ name: 'Gandalf', spells: [{ name: 'Fireball', […]

Heroku bash:node:找不到命令

在Heroku上启动节点应用程序之前,有没有人有这个错误? 2012-10-17T20:28:52+00:00 heroku[web.1]: Starting process with command `node app.js` 2012-10-17T20:28:53+00:00 app[web.1]: bash: node: command not found 似乎Heroku应用程序缺less节点。 该应用程序本地启动就好了。 领class开始和节点app.js. { "name": "app-name", "description": "some desc", "version": "0.0.1", "private": true, "engines": { "node": "0.8.12", "npm": "1.1.49" }, "dependencies": { "express" : "2.5.9", "mongoose" : ">=2.6.0", "colibri" : "*", "jade": ">= 0.0.1" } }

茉莉花(摩卡)嵌套“它”testing

我试图testing随后的创build/删除项目(在mongoDB通过mongoose)。 创build是asynchronous的问题,它返回创build的项目在callback函数中的ID,我需要这个ID删除创build的项目,所以我尝试了摩卡(以不同的方式)下面的代码,但它没有工作。 describe('Item Model', function(){ it('should be able to create item', function(done){ var item = new Item({name: {first: "Alex"}); item.save(function(err, data){ it('should be able to deleted created item', function(done){ Item.delete({_id: data.id}, function(err, data){ done(err); }); }); }) }); }); 这种testing可以在摩卡或茉莉花中实施吗?

无法获取Mongoose.js子文档数组

我在连接到mongodb的node.js服务器上使用mongoose.js,并且有一个如下的mongoose模型 SubSchema = new Schema({ _member: {type: ObjectId, ref: 'Member'}, members: [{type: ObjectId, ref: 'Member'}], created: { type: Date, default: Date.now } }); mongoose.model('SubModel', SubSchema); MainSchema = new Schema({ _member: {type: ObjectId, ref: 'Member'}, subs: [SubSchema], members: [{type: ObjectId, ref: 'Member'}], created: { type: Date, default: Date.now } }); var MainModel mongoose.model('MainModel', MainSchema); 我用这样的命令拉 var […]

使用不是id的字段填充mongoose模型

是否有可能用一个不是_id的参考模型字段填充mongoose模型…例如用户名。 所以有点像 var personSchema = Schema({ _id : Number, name : String, age : Number, stories : { type: String, field: "username", ref: 'Story' } });

Mongoose:populate()/ DBref或数据重复?

我有两个集合: 用户 上传 每个上传都有一个与之关联的User ,当查看Upload时,我需要知道他们的详细信息。 最好的做法是在Uploadslogging中复制这些数据,或者使用populate()从_id引用的Users集合中获取这些细节。 选项1 var UploadSchema = new Schema({ _id: { type: Schema.ObjectId }, _user: { type: Schema.ObjectId, ref: 'users'}, title: { type: String }, }); scheme2 var UploadSchema = new Schema({ _id: { type: Schema.ObjectId }, user: { name: { type: String }, email: { type: String }, avatar: { type: […]

查询mongoose和date

我试图找出如何用mongoose做特定的查询。 我有这样的MongoDB: { "_id" : 1, "modificationDate" : ISODate("2013-06-26T18:57:30.012Z") } { "_id" : 2, "modificationDate" : ISODate("2013-06-26T18:57:35.012Z") } 我想获得所有的实际date和modificationDate之间的差异大于5天的对象。

mongoose – 如何挖掘模式中间件到'init'事件?

在Mongoose文档中build议我应该能够使用插入到“init”钩子的中间件来控制stream。 但是,迄今为止,我只有通过“保存”和“validation”才能取得成功。 当我做这样的事情时,这些中间件都不会被调用: MySchema.post( "init", function (next) { console.log("post init") }); MySchema.pre( "init", function (next) { console.log("pre init") }); 我错过了什么吗?

为什么我不能删除mongoose模型的对象属性?

当用户注册我的API时,他们返回一个用户对象。 在返回对象之前,我删除散列的密码和salt属性。 我必须使用 user.salt = undefined; user.pass = undefined; 因为当我尝试 delete user.salt; delete user.pass; 对象属性仍然存在并被返回。 这是为什么?