Tag: mongoose

如何在Mongoose模式中设置数组大小限制

你会友好地告诉我有什么方法可以在创buildMongoose模式时设置数组大小的限制。 例如 var peopleSchema = new Schema({ name: { type: String, required: true, default: true }, /* here I want to have limit: no more than 10 friends. Is it possible to define in schema?*/ friends: [{ type: Schema.Types.ObjectId, ref: 'peopleModel' }] })

如何执行与Mongoose runCommand?

我正在使用Node.js和Mongoose来访问我的MongoDB。 我正在使用存储一些地理坐标的模型。 我有他们索引,一切似乎按预期工作。 我想要做的是从我的请求中获取最近的东西。 在MongoDB控制台上,我做了这样的事情: distances = db.runCommand({ geoNear : "deals", near : [11.252, 14.141], spherical : true, maxDistance : 300 }).results 但是,我不知道如何用Mongoose做到这一点。 这里是关于我试图使用的命令的更多信息: http : //www.mongodb.org/display/DOCS/Geospatial+Indexing 谢谢,何塞

将嵌套对象保存在mongoose中

我刚接触node.js和MongoDb(以及一般的文档数据库)。 从PHP / MySQL背景来看,我在构build和保存数据方面苦苦挣扎。 我试图创build一个小应用程序,我可以添加多种配料的食谱。 我有一堆预填充的成分作为种子数据,其模式如下所示: var IngredientSchema = new Schema({ name: { type: String, trim: true, required: true, index: { unique: true } }, created: { type: Date, default: Date.now } }); var Ingredient = mongoose.model('Ingredient', IngredientSchema); 配方目前看起来像这样: var RecipeSchema = new Schema({ name: { type: String, trim: true }, ingredients: [ { type: […]

防止Node.js中与数据库相关的争用情况

概观 我正在尝试了解如何在使用Node.js时使用模型实例来确保asynchronous安全。 在这里,我在代码示例中使用了Mongoose ODM,但这个问题适用于任何使用Node.js采用的asynchronous事件驱动的I / O方法的数据库。 考虑下面的代码(它使用Mongoose进行MongoDB查询): 片段A MyModel.findOne( { _id : <id #1> }, function( err, doc ) { MyOtherModel.findOne( { _id : someOtherId }, ( function(err, otherDoc ) { if (doc.field1 === otherDoc.otherField) { doc.field2 = 0; // assign some new value to a field on the model } doc.save( function() { console.log( […]

在amazon EC2上托pipenodeJS / mongoose web应用程序

我想在云端托pipe一个nodeJS / mongoose / mongodb应用程序,由于EC2有一个免费的MicroInstance,所以我的问题是: 有没有一步一步的教程,我怎么能起床和运行nodejs /亚马逊EC2中的mongoose应用程序?

mongoose保存失败没有错误

正如标题所示,我在使用mongoose保存方法时遇到了问题,但是不会生成错误。 我实际上知道为什么它失败了,这是根据需要标记为userId字段,但没有提供…但我不知道为什么它不会抛出一个错误。 我已经穷尽了谷歌和stackoverflow看着类似的build议,没有运气,所以扔给任何人谁可以帮助我! 这是代码… Model.js var mongoose = require('mongoose'); var TimeSchema = new mongoose.Schema({ client: String, matter: String, activity: String, tags: String, description: String, comments: [String], startTime: Date, startTimeUTC: Number, endTime: Date, endTimeUTC: Number, duration: Number, durationRnd: Number, durationUnits: Number, billable: Boolean, rate: Number, total: Number, user: String, userId: { type: mongoose.Schema.ObjectId, required: true } […]

确保快速应用程序在每个摩卡testing之前运行

我正在使用ExpressJS,NodeJS,Mongoose和Mocha开发REST API。 问题是我有一个app.coffee文件,负责设置ExpressJS并连接到Mongoose。 我设置的方式是,首先连接Mongoose,如果通过,则启动ExpressJS App。 问题是,在设置Mocha时,我需要确保app.coffee中存在的ExpressJS App在执行任何testing用例之前已经成功启动,包括所有asynchronous代码。 为此,我创build了一个test_helper.coffee,并在其中放置了下面的代码,但是,即使app.coffee中的代码还没有完全完成它的执行,testing用例也会开始执行,这实际上是有意义的: before (done) -> require(__dirname + '/../src/app') done() 简而言之,我想确保ExpressJS应用程序在执行任何testing用例之前已完全完成设置。 我怎么能做到这一点?

无法将属性添加到js对象

我正在返回一个Mongoose文档,并希望在发送它之前添加一些元数据。 然而,我无法添加任何属性,我不知道为什么。 我已经检查过它是可扩展的Object.isExtensible(doc),它是。 Item.findById(req.params.id).exec(function(err, doc) { doc.blah = 'hello'; console.log(doc); // No trace of 'blah'. I can change/delete existing props however }) 什么可能是问题?

Mongoose:Model.create和Collection.insert有什么区别

我想在MongoDB中做一个批量插入工作,我在mongoose中发现了两种方法: 一种方法是使用insert : dataArr = [ { id: "", name: "" } { id: "", name: "" } ] Collection.insert(dataArr) 另一种方式是Model.create : Model.create(dataArr) 两者都可以完成批量插入作业,但它们之间有什么区别? 哪一个更有效率?

是否有一种方法来自动生成ObjectIdmongoose模型new'ed?

有没有办法在mongoose中声明一个Model模式,这样当模型被new'ed时_id字段会自动生成? 例如: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var ObjectIdSchema = Schema.ObjectId; var ObjectId = mongoose.Types.ObjectId; var PersonSchema = new Schema({ _id: ObjectIdSchema, firstName: {type: String, default: 'N/A'}, lastName: {type: String, default: 'N/A'}, age: {type: Number, min: 1} }); var Person = mongoose.model('Person', PersonSchema); 起初,我认为太棒了,我会做 _id: {type:ObjectIdSchema, default: new ObjectId()} 但当然这是行不通的,因为新的ObjectId()只在模式的初始化时被调用。 所以调用新的Persion()两次会创build两个具有相同_id值的对象。 所以有办法做到这一点,每当我做“新人()”一个新的ObjectId()生成? […]