Articles of mongoose

Node.js:res.redirect(“back”)得到错误('不能在发送之后设置头部')。

我有一个express.js应用程序的一个小问题。 在使用callback进行多个操作后,无法重新导向。 我的应用程序使用名为“标记”的对象,并按“子类别”进行评分。这些操作的目标是合并2个或更多个子类别,将所有标记从旧类别移动到新子类别,最后删除旧的子类别。 这里是代码: 检查2个或更多子类别后调用的操作: exports.postMergeSubCategories = function(req, res) { "use strict"; var data = {}; data.subCategories = req.body.subCategoriesChecked; data.enName = req.body.subCategory.enName; data.frName = req.body.subCategory.frName; data.deName = req.body.subCategory.deName; if (data.subCategories.length > 1) { sscategoryMapper.merge(data, function(err, sscategory) { if (err) return console.log(err); console.log ('Sub categories merged !'); req.flash('mergeMessage', 'Merge completed!'); res.redirect("back"); }); } else { // […]

Mongoose:强制转换为ObjectId失败

我正在尝试通过Mongoose在Node.js中创buildMongoDB中的类别层次结构。 我正在使用祖先数组方法( http://docs.mongodb.org/manual/tutorial/model-tree-structures-with-ancestors-array/ ),并已经在数据库中保存了层次结构。 从Mongo直接的元素看起来像这样: { "_id" : "Football", "ancestors" : [ "Categories", "Sports and fitness" ], "parent" : "Sports and fitness" } 我已经创build了一个模型和控制器的类别,并且现在有问题查询数据库。 这是model / Category.js中的代码: var mongoose = require('mongoose'); var Category = mongoose.Schema({ _id: String }); var categorySchema = mongoose.Schema({ ancestors: [Category], parent: [Category] }); // Initiate database connection var db = mongoose.createConnection('mongodb://localhost/Categories'); […]

我可以在JugglingDB中拥有多个模式对象吗?

我有一个简单的应用程序连接到两个数据源。 一个是mongo,其中我使用mongoose作为我的ORM,主要是因为它有一些很棒的function供我使用。 另一个是我正在使用mysql的适配器jugglingdb的MySQL。 由于我是jugglingdb的新手,我有几个有关其组织的问题。 你可以有你的模式对象在多个文件? Mongoose允许您在不同的文件中创build模式对象,并允许您使用mongoose.model("mymodel")引用它们,但mongoose.model("mymodel")的有限文档将其所有模式定义在一个文件中。 我想知道如何引用你已经定义的模式对象。 到目前为止,我的努力一直是从主模式对象中移除连接信息,并将其放入另一个文件中。 var Schema = require('jugglingdb').Schema; var TestSchema = function () { var schema = new Schema('mysql', { database: 'MyDB', username: 'blah', host: 'localhost', password: 'blah', port: '3306' }); return schema; }; module.exports = TestSchema; 然后,我会添加每个模式对象在他们自己的文件,并要求上面的代码是这样的: var Test = require('../../db/jugglin_conn') , schema = new Test(); var Email = schema.define('email', […]

当它应该是_id没有为subdocs生成

这是我的两个模式 var reviews = new Schema({ scenarioId: { type: Schema.Types.ObjectId, required: true}, authorId: { type: Schema.Types.ObjectId , required:true }, reviewNote: String, subReviews: [subReviewSchema], active: {type: Boolean, default: true}, display: {type: Boolean, default: true}, date : {type: Date, default: Date.now()} }); 和subcheviews的subcheA var subReviews = new Schema({ authorId: { type: Schema.Types.ObjectId, required:true }, subReviewNote: String, date: […]

Mongoose保存没有改变的字段/子文档吗?

我有一个定义良好的模式,因为没有需要#markModified() Mixed字段。 根据我对Mongoose文档的理解,Mongoose应该检测哪些字段/子文档已更改,并且只在update()提交用于持久性的已修改字段。 它是否正确? 因为看起来Mongoose在更新(或者,eh,upsert)上也提交了未修改的字段和子文档。

Node.js,embedded式对象的Mongoose策略模式(inheritance,鉴别器)

有人可以帮我吗? 我想用mongoose及其embedded的对象来使用策略模式或inheritance/鉴别器。 我知道mongoose支持inheritance/鉴别器的收集,但没有find任何解决scheme的embedded式对象。 不知道如何定义schema / s,或者即使没有真正的重编码也是可能的。 这是我的代码。 来源集合,每个来源可以有一个不同types的运输。 如果Source.getTransport()的调用返回HttpTransport或FileTransport的实例,理想情况是。 [{ _id: "1……", name: 'Source 1', enabled: true, transport: { type: 'Http', url: 'http://some.url' } },{ _id: "2……", name: 'Source 2', enabled: true, transport: { type: 'File', path: '/some/path/here' } }] 我甚至不确定mongoose文档(如HttpTransport / FileTransport)是否应该包含方法read(),并执行所有繁重的工作,或者只是将其保留为configuration对象,并使用外部工厂创build传输实例传递此configuration对象。 var transport = TransportFactory.create(source.getTransport()); 或者我完全错了,还有其他的模式可以使用? 感谢您的任何帮助。

如何查询没有特定ID的mongodb中的所有文档?

我正在尝试返回文档的关注者数组中没有用户标识的所有文档。 我用Node.Js使用mongoose,但常规的mongodb方式应该没问题。 编辑 添加更多信息: 这是一个示例文件: { __v: 0, _id: ObjectId("53333273adf3ede81f0ce23b"), title: "fashion", date: 1395864179, followers: [ ObjectId("53343ac3abcd1b6016c52c1b") ] } 查询我试图写但不知道$ nin是否正确,因为mongodb上的例子是相反,确保文档中的字段不等于一个数组的东西,我想确保一个文件数组不包括单个元素。 Story.find({followers: {$nin: [user]}}, "_id title", {$sort: {date: {{$gte: 30 } }, skip: 5, limit: 100}, function(err, results) { 该模型: var Story = new Schema({ title: {type: String}, followers: [{ type: ObjectId, ref: 'User' }], […]

为什么要使用Mongoose模型而不是模式/文档?

我很惊讶这个问题以前没有问过,让我有点担心我的能力,了解如何自己的事情工作…. 在面向对象编程中,我们首先定义了抽象,类,然后基于抽象来实例化许多具体的对象。 为什么我们需要用Mongoose来定义Schema和Model? 这两个步骤不是一回事吗?

mongoose里的2个混合对象的Schema数组

嘿我试图做一个数组到一个数组,它们都是混合types,多数民众赞成我是如何build立它 var Fields = new Schema({ type: {type: String}, length: {type: Number}, lable: {type: String}, name: {type: String} }); var Fieldsets = new Schema({ label: {type: String}, name: {type: String}, fields: {type: [Fields]} }); var Steps = new Schema({ order: {type: Number}, name: {type: String}, fieldsets: {type: [Fieldsets]} }); var FormSchema = new Schema({ name: […]

用mongoose把一些HTML标签转义出来

我刚刚开始使用mongoose,我有一个用例,我想要一个“安全的”HTML标记(即, <i> , <b> , <u> ,其他)的白名单,但我想删除恶意的,如<script> 。 我目前正在试图find一个支持类似这样的消毒中间件,但到目前为止,我发现的所有内容都是validator.js ,而且似乎并不支持列入白名单的HTML,只是将字符列入白名单。 我的用例如下:我想用summernote创build一些依赖用户input的格式良好的东西,用mongoose把它们保存到mongodb中,然后在其他地方显示这个特定的HTML。 有一些中间件可以帮助我吗?