Tag: mongoose

与Mongoose进行多对多的映射

我的devise中有FlashcardSchemas和PackageSchemas。 一个flashcard可以属于不同的包,一个包可以包含不同的flashcard。 下面你可以看到我的mongoose模式定义的精简版本: // package-schema.js var Schema = mongoose.Schema, ObjectId = Schema.ObjectId; var PackageSchema = new Schema({ id : ObjectId, title : { type: String, required: true }, flashcards : [ FlashcardSchema ] }); var exports = module.exports = mongoose.model('Package', PackageSchema); // flashcard-schema.js var Schema = mongoose.Schema, ObjectId = Schema.ObjectId; var FlashcardSchema = new Schema({ […]

我如何更新mongoose中的多个文件

我发现了下面的脚本: Device.find(function(err, devices) { devices.forEach(function(device) { device.cid = ''; device.save(); }); }); MongoDB的“多”标志为多个文件的更新,但我不能得到这与mongoose工作。 这还不支持,或者我做错了什么? Device.update({}, {cid: ''}, false, true, function (err) { //… });

确定前保存callback中是否有新logging

有没有办法find一个logging“是新的”(尚未保存)mongoose模型模式的预保存callback?

查询后填入mongoose

我对Mongoose和MongoDB一般很新,所以我很难搞清楚这样的事情是否可能: Item = new Schema({ id: Schema.ObjectId, dateCreated: { type: Date, default: Date.now }, title: { type: String, default: 'No Title' }, description: { type: String, default: 'No Description' }, tags: [ { type: Schema.ObjectId, ref: 'ItemTag' }] }); ItemTag = new Schema({ id: Schema.ObjectId, tagId: { type: Schema.ObjectId, ref: 'Tag' }, tagName: { type: […]

如何得到mongoose模型的所有计数?

我怎样才能知道数据已保存的模型的数量? 有一个Model.count()的方法,但似乎没有工作。 var db = mongoose.connect('mongodb://localhost/myApp'); var userSchema = new Schema({name:String,password:String}); userModel =db.model('UserList',userSchema); var userCount = userModel.count('name'); userCount是一个对象,哪个方法可以得到一个真正的count ? 谢谢

passport.js passport.initialize()中间件未被使用

我正在使用express + mongoose的节点,并尝试使用passport.js和restful api。 validation成功后,我一直收到这个exception(我在浏览器上看到了callbackurl): /Users/naorye/dev/naorye/myproj/node_modules/mongoose/lib/utils.js:419 throw err; ^ Error: passport.initialize() middleware not in use at IncomingMessage.req.login.req.logIn (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/http/request.js:30:30) at Context.module.exports.delegate.success (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/middleware/authenticate.js:194:13) at Context.actions.success (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/context/http/actions.js:21:25) at verified (/Users/naorye/dev/naorye/myproj/node_modules/passport-facebook/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth2.js:133:18) at Promise.module.exports.passport.use.GitHubStrategy.clientID (/Users/naorye/dev/naorye/myproj/config/passport.js:91:24) at Promise.onResolve (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:162:8) at Promise.EventEmitter.emit (events.js:96:17) at Promise.emit (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:79:38) at Promise.fulfill (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:92:20) at /Users/naorye/dev/naorye/myproj/node_modules/mongoose/lib/query.js:1822:13 我读过,我应该把app.use(passport.initialize()); 和app.use(passport.session()); 在app.use(app.router);之前app.use(app.router); 这就是我所做的。 这是我的express.js注册中间件: var express = require('express'), mongoStore = […]

Mongoose.js:通过用户名LIKE值查找用户

我喜欢通过寻找一个名为value的用户来在mongoDb中find一个用户。 问题在于: username: 'peter' 是,如果用户名是“彼得”,或“佩特”..或类似的东西,我不会find它。 所以我想要像SQL一样 SELECT * FROM users WHERE username LIKE 'peter' 希望你们能得到我所要求的? 短:mongoose.js / mongodb中的“字段LIKE值”

如何在不定义模式的情况下使用Mongoose?

在之前版本的Mongoose(对于node.js)中,有一个选项可以在不定义模式的情况下使用它 var collection = mongoose.noSchema(db, "User"); 但在目前的版本中,“noSchema”function已被删除。 我的模式可能经常改变,真的不适合定义的模式,所以有没有一种新的方法在mongoose中使用无模式模型?

Mongoose和单个node.js项目中的多个数据库

我正在做一个包含子项目的Node.js项目。 一个子项目将有一个Mongodb数据库,Mongoose将用于包装和查询数据库。 但问题是 Mongoose不允许在单个mongoose实例中使用多个数据库,因为模型是在一个连接上构build的。 为了使用多个mongoose实例,Node.js不允许多个模块实例,因为它在require()具有caching系统。 我知道在Node.js禁用模块caching,但我认为这不是一个好的解决scheme,因为它只需要mongoose。 我试图在mongoose中使用createConnection()和openSet() ,但这不是解决scheme。 我试图深入复制mongoose实例( http://blog.imaginea.com/deep-copy-in-javascript/ )传递新的mongoose实例到子项目,但它RangeError: Maximum call stack size exceeded 。 我想知道是否有任何使用mongoose或任何解决方法为这个问题使用多个数据库? 因为我认为mongoose是相当容易和快速的。 或者其他任何模块作为build议?

我怎样才能用mongoose产生一个ObjectId?

我想用Mongoose生成一个MongoDB ObjectId 。 有没有办法从Mongoose访问ObjectId构造函数?