Articles of mongoose

未定义的模型字段使用`strict:false`

var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test', {user: 'mongod'}); mongoose.connection.once('open', function () { 我用一个字段创build一个模型并严格:false var Foo = mongoose.model('Foo', mongoose.Schema({ foo: String }, {strict: false})); 然后保存一个有两个字段的模型 Foo.create({foo: "FOO", bar: "BAR"}, function () { 然后阅读它,并打印它的领域 Foo.findOne(function (err, f) { console.log(f, f.foo, f.bar); }); }); }); 输出是{ foo: 'FOO', bar: 'BAR', _id: 53c249e876be58931f760e70, __v: 0 } , 'FOO' , undefined […]

如何计算从mongoose查询返回的文档所使用的磁盘空间(字节)?

情况如下: 在Node.js中使用Mongoose.js 执行查询,如Model.find().where('something', 'value').exec(callback) 您在callback收到一组文档 我如何确定磁盘上这些文件的大小? 大概是好的,对我来说至less。

用部分stringsearchmongoose的文本

您好我正在使用mongoosesearch我的collections中的人。 /*Person model*/ { name: { first: String, last: String } } 现在我想用查询search人员: let regex = new RegExp(QUERY,'i'); Person.find({ $or: [ {'name.first': regex}, {'name.last': regex} ] }).exec(function(err,persons){ console.log(persons); }); 如果我search约翰我得到的结果(事件,如果我search乔 )。 但是,如果我searchJohn Doe,我显然没有得到任何结果。 如果我将QUERY更改为John | Doe,我会得到结果,但是它会返回所有在John / Doe中包含最后/名字的人员。 接下来的事情是用mongoose文本search尝试: 首先添加字段索引: PersonSchema.index({ name: { first: 'text', last: 'text' } },{ name: 'Personsearch index', weights: { name: […]

Mongoose自定义validation更新的几个字段

首先, 这没有帮助。 比方说,我们有一个用户模型: const schema = new mongoose.Schema({ active: { type: Boolean }, avatar: { type: String } }); const User = mongoose.model('User', schema); 当我们更新它(设置一个化身): // This should pass validation User.update({ _id: id }, { $set: { avatar: 'user1.png' } }); 我们希望根据当前(或更改)的active属性值进行validation。 情况1 active是false 我们不应该能够设置头像 – 它不应该通过validation 案例#2 active是true 我们应该能够设置头像 – 它应该通过validation 思路 使用自定义validation器 const […]

mongoose连接池

我注意到在Mongoose文档中有一个连接池的支持。 http://mongoosejs.com/docs/connections.html 考虑到节点是单线程为什么有一个连接池? 池中连接的生命周期是什么?

存储库像节点和mongoose模式

我正在开发我的第一个应用程序与节点和mongoose,并试图构build与存储库模式的应用程序。 我有我的应用程序模块,使用旅程和mongoose层的路由器模块。 我为每个mongo实体创build了一个单独的模块,并为CRUD操作的导出方法像存储库一样工作。 这是一个很好的方式来构build应用程序,或者我应该遵循另一种方法?

TypeError:undefined不是nodejs中的函数

这是我的users.js模型。 var mongoose = require('mongoose') , crypto = require('crypto') , mongoTypes = require('mongoose-types'); mongoTypes.loadTypes(mongoose, 'email'); mongoose.connect('mongodb://localhost/popbroker'); function hash1 (msg, key) { return crypto.createHmac('sha256', key).update(msg).digest('hex'); }; function required(val) { return val && val.length; } var Schema = mongoose.Schema , ObjectId = Schema.ObjectId; var UserSchema = new Schema({ username: { type: String, validate: [required,"Username is required"], index: […]

如何将数据转换为utf-8在node.js?

我用express来使用node.js。 我用Mongoose从MongoDB中读取数据,并用res.send(data)以正常的方式传递它。 不幸的是,一些请求交付失败。 即使如此,头文件说编码是utf-8,在某些情况下它似乎是ANSI,导致jsonpcallback函数失败并出现错误。 您可以在此页面重现错误: http : //like-my-style.com/# ! single/9837034 。 jsonp调用仅在某些产品上失败,其中大部分(也是具有特殊字符的)工作正常。 我怎样才能确保给定的string编码utf-8在node.js?

mongoos pre / save /(串行/并行)中间件绑定了哪些函数完成/下一步

尝试通过文档/博客(Tim Casewell)了解mongoose中间件(前/保存/并行)。 基于http://mongoosejs.com/docs/middleware.html var schema = new Schema(..); schema.pre('save', true, function (next, done) { // calling next kicks off the next middleware in parallel next(); doAsync(done); }); The hooked method, in this case save, will not be executed until done is called by each middleware. 什么是/下一步在这里? 你能举一个完整的例子来说明如何使用它吗? 例如:我使用序列如下: myModel.save(function(err) { if (err) console.error("Error Occured") else […]

connect-mongo创build的条目不会过期

我有一个使用Express设置的节点服务器,使用Passport进行身份validation。 我听说connect-mongo可以很好地用于持久login会话,所以我build立了一切,似乎一切正常,用户会话被mongo根据过期时间自动删除。 但是,在生产中,每个用户会话都有5000个其他空会话永不过期,我不知道为什么mongo不会自动清理这些会话。 mongo中的空会话示例如下所示: { "_id" : "JMtV5Z1oWRkgh9KIKlwSqwOE", "session" : "{\"cookie\":{\"originalMaxAge\":86400000,\"expires\":\"2014-02-13T22:09:09.948Z\",\"httpOnly\":true,\"path\":\"/\"},\"passport\":{}}", "expires" : Date( 1392329349948 ) } 这是Expressconfiguration代码: var express = require('express') , passport = require('passport') , fs = require('fs') , http = require('http') , https = require('https') , util = require('util') , mongoose = require('mongoose') , MongoStore = require('connect-mongo')(express) , FacebookStrategy = require('passport-facebook').Strategy , […]