Articles of mongoose

Node.js – 需要mongoose在这里和那里造成冗余?

我有以下的Node.js目录结构。 |–app/ |–app.js |–routers/ |–index.js/ |–models/ |–schemas.js |–post.js 在app.js中 ,有一行喜欢这个mongoose.connect('mongodb://localhost/' + config.DB_NAME); 。 在schema.js中 : var mongoose = require('mongoose') , Schema = mongoose.Schema , ObjectId = Schema.ObjectId; var PostSchema = new Schema({ title: String , author: String , body: String , creataAt: { type: Date , default: Date.now } }); // other schemas goes here […]

将模型parameter passing给mongoose模型

我有一个与用户模型有关联的mongoose模型 var exampleSchema = mongoose.Schema({ name: String, <some more fields> userId: { type:mongoose.Schema.Types.ObjectId, ref: 'User' } }); var Example = mongoose.model('Example', userSchema) 当我实例化一个新的模型时,我会这样做: // the user json object is populated by some middleware var model = new Example({ name: 'example', …. , userId: req.user._id }); 模型的构造函数需要大量参数,在模式更改时,这些参数已经变得繁琐难以编写和重构。 有没有办法做这样的事情: var model = new Example(req.body, { userId: req.user._id […]

来自NodeJS或mongoose的mongodump / mongorestore

想知道是否可以从nodejs中运行mongodump / mongorestore。 可能不是一个真正的mongoose,因为这不是什么mongoose。 但想知道是否有办法从mongodb nodejs驱动程序执行这些命令。 看起来我可以做到这一点作为最后的手段: 我如何执行mongodump命令以编程方式从node.js?

mongoose在数据库中find最后十个条目

我正在做一个简单的小社交networking。 我有所有的inputpost,用户等,完成。 现在唯一错误的是它几乎只是一个聊天室。 每当你在某人的网页上发布信息时,唯一可以查看的人就是当时网页上的人。 当你刷新,所有的post都没有了。 这是我发送post时的技术部分,以及我想要做的事情。 每当你发布一篇文章,它会做一些不重要的事情,我不会列出它们。 但是有一个重要的部分,把它发送给NodeJS服务器。 这是它使用的代码: function sendPost(cont) { socket.emit("newPost", username, uid, cont, page); model.posts.unshift(new Post(username, uid, cont, page)); // You don't need to worry about this } 正如你所看到的,它使用用户名,uid,内容和页面发出一个“newPost”。 在服务器上,它接收这个post,然后插入到数据库中。 socket.on("newPost", function (name, id, cont, page) { var thePost = new Post({name: name, cont: cont, id: id, page: page}); console.log("Received a new […]

Mongoose toObject:{virtuals:true}

我试图学习MongoDB / Node,我注意到在一个模式中,我经常看到这样的事情: toObject: { virtuals: true } toJSON: { virtuals: true } 这两行意味着什么?

mongoose只读没有模式

我在我的node.js应用程序中使用Mongoose来模拟数据库中的两个集合,它将读取和写入。 还有两个集合只能从我的应用程序中读取(这些集合的模型正在另一个应用程序中进行维护,将写入这些集合)。 如果我需要使用mongoose访问这两个只读集合,那么我将不得不在这个应用程序中维护一个模式。 我宁愿不这样做,因为模式将被维护两次,并可能导致以后不一致。 Mongoose中的默认连接可以通过创build Mongoose.connect(dbPath) 给定一个dbPath(例如, mongodb://localhost/dbname ),我怎样才能使用Mongoose默认连接从集合的模式/模型不被我的应用程序维护读取? 或者我将不得不使用相同的本地MongoDB驱动程序?

用Mongoose自定义错误信息

所以根据mongoose文档 ,你应该能够在模式中设置一个自定义错误消息,如下所示: var breakfastSchema = new Schema({ eggs: { type: Number, min: [6, 'Too few eggs'], max: 12 }, bacon: { type: Number, required: [true, 'Why no bacon?'] } }); 所以我想做类似的事情: var emailVerificationTokenSchema = mongoose.Schema({ email: {type: String, required: true, unique: [true, "email must be unique"]}, token: {type: String, required: true}, createdAt: {type: Date, required: […]

mongoose – 不赞成mongodb@2.2.16:请升级到2.2.19或更高?

当我尝试安装mongoose时,为什么我会在下面看到这个警告信息? npm WARN弃用mongodb@2.2.16:请升级到2.2.19或更高版本 JSON: { "name": "dummy-app", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www" }, "dependencies": { "body-parser": "~1.15.1", "cookie-parser": "~1.4.3", "debug": "~2.2.0", "express": "~4.13.4", "pug": "~2.0.0-beta3", "morgan": "~1.7.0", "serve-favicon": "~2.3.0", "mongoose": "^4.7.6" } } 我该如何解决这个问题?

如何使用NodeJS和Express呈现上传的照片?

我通常会发表自己最擅长的例子,但是在这种情况下,我不知道从哪里开始(还没有用其他语言上传照片)。 那么怎么去渲染上传的照片。 我正在使用Node v0.4.2,Express 1.0.8和Mongoose 1.0.16,并且上传了可以正常工作的图片(最终以〜/ tmp结尾)。 谢谢。

使用req.body通过Mongoose更新和/或添加数组元素属性?

我有以下文件: { "_id" : ObjectId("503b83dfad79cc8d26000004"), "pdfs" : [ { "title" : "Test document", "pdf_id" : ObjectId("504f6793ce351a595d000004"), "created_at" : ISODate("2012-09-11T16:32:19.276Z") }, { "title" : "Some other doc", "pdf_id" : ObjectId("502bf124b4642341230003f0"), "created_at" : ISODate("2012-09-11T11:34:19.276Z") } ] } 现在通过req.body传入表单,我有2个字段: title和description 。 我想更新title并为指定的pdf_id插入description ,我该怎么做? 所以最后,我的文档现在看起来像: { "_id" : ObjectId("503b83dfad79cc8d26000004"), "pdfs" : [ { "title" : "This is an UPDATED […]