Tag: mongodb

集团(在)mongoose?

我已经在shell中构build了我想要的查询,但是在Mongoose中编写它时遇到了麻烦。 db.commentstreams.group({ key: { page_id: true }, reduce: function(obj,prev) { prev.num_comments += obj.num_comments }, initial: { num_comments: 0 } }) 我对Mongoose语法有点困惑; 也许有人可以在这一点上有所了解。 非常感谢。

在MongoDB中删除时自动删除引用对象

假设我有这样的模式: var Person = new Schema({ name: String }); var Assignment = new Schema({ name: String, person: ObjectID }); 如果我删除了一个人,仍然可能存在遗留的孤立的分配,这些分配引用了一个不存在的人,这会在数据库中造成无关紧要的混乱。 有一个简单的方法可以确保当一个人被删除时,那个人的所有相应的引用也将被删除?

Mongoose pre.save()asynchronous中间件没有按预期工作

以下为: Mongoose唯一validation错误types 我使用这个模式从npm的mongoose 3.0.3 : var schema = new Schema({ _id: Schema.ObjectId, email: {type: String, required: true, unique: true} }); 用这个中间件从unique:true获取一个validationError schema.pre("save", function(next, done) { var self = this; model.findOne({email : this.email}, 'email', function(err, results) { if(err) { done(err); } else if(results) { console.warn('results', results); self.invalidate("email", "email must be unique"); done(new Error("email must be unique")); […]

Mongodbtypes的参考节点

我想在节点中的模型中引用另一个对象, User = new Schema({ username: { type: String, index: {unique: true} } }); Idea = new Schema({ Creator: { type: User } }); 但我得到这个错误Undefined type at "creator" Did you try nesting Schemas? You can only nest using refs or arrays. Undefined type at "creator" Did you try nesting Schemas? You can only nest using […]

如果没有发现与.find()mongoose做什么

我将一些数据存储在一个mongodb中,并使用js / nodejs和mongoose访问它。 我可以使用.find()在数据库中find一些东西,这不是问题。 问题是如果没有东西,我想做别的事情。 目前这是我想要的: UserModel.find({ nick: act.params }, function (err, users) { if (err) { console.log(err) }; users.forEach(function (user) { if (user.nick === null) { console.log('null'); } else if (user.nick === undefined) { console.log('undefined'); } else if (user.nick === '') { console.log('empty'); } else { console.log(user.nick); } }); }); 当我做某些事情时,这些都不会引起act.params的缺陷。 当发生这种情况时,我什么也没有得到任何控制台,但是我确实得到了user.nick,当它实际存在的时候,它就可以很好的logging下来。 我只是试图做到这一点倒过来: UserModel.find({ […]

Mongoose更改模式格式

我们正在快速开发一个使用Mongoose的应用程序,而且我们的模式经常变化。 我似乎无法找出正确的方法来更新现有文档的模式,而不会将它们吹走并从头开始重新完成。 我遇到http://mongoosejs.com/docs/api.html#schema_Schema-add ,这看起来是正确的。 几乎没有关于如何真正实现这个的文档,这使得对于MongoDB的新手来说很难。 我只是想添加一个名为启用的新字段。 我的模式定义是: var sweepstakesSchema = new Schema({ client_id: { type: Schema.Types.ObjectId, ref: 'Client', index: true }, name: { type: String, default: 'Sweepstakes', }, design: { images: { type: [], default: [] }, elements: { type: [], default: [] } }, enabled: { type: Boolean, default: false }, schedule: { start: […]

在mongodb上为每个集合使用多个模式

我想在MongoDB中为每个集合使用多个模式,如何使用它….? 当我尝试运行它时,它给了我这个错误: 错误: OverwriteModelError:编译后无法覆盖allUsers模型。 OverwriteModelError:编译后无法覆盖checkInOut模型。 下面是我的schema.js var mongoose = require('mongoose'); var Schema = mongoose.Schema , ObjectId = Schema.ObjectId; var checkInInfoSchema= new Schema({ name:String, loginSerialId:Number }); var loginUserSchema = new Schema({ sn : { type: Number, unique:true } ,uname: {type:String, unique:true} ,pass:String }); var registerUserSchema = new Schema({ sn : { type: Number, unique:true } , […]

mongoosefind/更新子文档

我有以下模式的文件夹 : var permissionSchema = new Schema({ role: { type: String }, create_folders: { type: Boolean }, create_contents: { type: Boolean } }); var folderSchema = new Schema({ name: { type: string }, permissions: [ permissionSchema ] }); 所以,对于每个页面我都可以拥有很多权限。 在我的CMS中有一个面板,我列出了所有的文件夹和他们的权限。 pipe理员可以编辑一个权限并保存。 我可以使用其权限数组轻松地保存整个文件夹文档,其中只有一个权限被修改。 但我不想保存所有的文档(真正的模式有更多的字段),所以我这样做: savePermission: function (folderId, permission, callback) { Folder.findOne({ _id: folderId }, function (err, […]

mongooseautoReconnect选项

我试图通过Mongoose来设置MongoDB自动重新连接function。 我试图通过这个选项的每一个方法都没有效果,或者至lessreconnected事件没有被排除。 我试过了: mongoose.createConnection("mongodb://localhost:27017/test", { auto_reconnect: true }); mongoose.createConnection("mongodb://localhost:27017/test", { autoReconnect: true }); mongoose.createConnection("mongodb://localhost:27017/test", { server: { auto_reconnect: true } }); mongoose.createConnection("mongodb://localhost:27017/test", { server: { autoReconnect: true } }); 如果其中一个是正确的, reconnected事件应该被触发,并且应该在控制台中logging一条消息,但是这从来就不会发生。 如果在重新连接之前有延迟,有没有人知道如何configuration它? 提前致谢 对于任何人来看这个 ,在mongoose存储库看看这个和这个问题。

nodejs mongodb对象id到string

在nodejs中,使用mongodb,mongoosejs作为orm 我正在这样做 我有一个模型,用户 User.findOne({username:'someusername'}).exec(function(err,user){ console.log(user) //this gives full object with something like {_id:234234dfdfg,username:'someusername'} //but console.log(user._id) //give undefined. }) 为什么? 如何获得_idstring呢?