Tag: mongoose

所有Schema的模式方法 – Mongoose方法的inheritance

我正在与Mongoose的nodejs工作,在这个时候我有不同的集合中的数据与_id像string写入的用户,我试图做一个重构,并自动生成_id。 我想在其他文件js中只有函数generateID(return _id;); 并在所有模型中实现此function,而无需在所有模型中重复写入。 这是bus.js /***********************************Bus Model**********************************/ var mongoose = require('mongoose'), merge = require('merge'), global = require('./schema/global'); /***********************************Schema******************************************/ var Schema = mongoose.Schema; var busSchema = new Schema({}); /***********************************Methods*****************************************/ var bus = mongoose.model('Bus', busSchema); /** * extend functions from global * we do this to prevent duplicate code */ merge(bus.schema.methods, global.schema.methods); module.exports = bus; 这是项目中模型文件夹上的schema文件夹中的global.js var […]

不能将属性添加到mongoose函数中的对象

我有一个函数从数据库获取一些数据,并将其绑定到一些variables: exports.getAccDoc = function(req, res, send, next) { var AccDoc = require('../models/accdoc'); AccDoc.find({ startup_id: req.startup.startup_id }).exec().then(function(accDocs) { vm.accDocs = accDocs; //I'm using vm in my view console.log(vm.accDocs); //logs a array that contains one object console.log(vm.accDocs[0]); //you know vm.accDocs[0].test = 'TEST'; //trying to add some property to the object console.log(vm.accDocs[0].test); //logs TEST like it should be […]

在总输出中组合不同的分组总计

现在我已经在$ project,aggregate()和$ group这个周末敲了一下头,现在是时候让我再次投入到你的仁慈之中。 我正在尝试拨打电话,回复用户的总数,按性别分组(这是比较容易的部分),并根据年龄段进行分组(这是击败了我)。 我得到它与一个小组合作: Person.aggregate([ { $match: { user_id: id } }, { $group: { _id: '$gender', total: { $sum: 1 } } } ]) .exec(function(err, result) { etc… 从那以后,它会给我多less男人,有多less女人在一个不错的输出中。 但是,如果我join第二组,似乎跳过第一个,扔第二组: Person.aggregate([ { $match: { user_id: id } }, { $group: { _id: '$gender', total: { $sum: 1 } }, $group: { _id: '$age', […]

在MongoDB中模型的Array中计算唯一的值

在许多模型的数组中,只计算唯一值的最好方法是什么? 假设我的模型是这样的: { myKey: [ "idnumber1000", "idnumber1001", "idnumber1005", ] } 而且我有大约10.000个,但是myKey值不同。 我想知道,对于一组给定的集合,我有多less不同的值。 我最初的想法是加载内存中的所有模型,然后,用Node.js计算。 但是由于我的数据集可能会增长很多(大约30-50K),所以会在我的机器上消耗大量内存。 这是唯一的方法去做,还是有另一个? 我使用Mongoose和Node.js

如何通过使用Mongoose查询子文档来查找父文档?

在下面的示例中,如何查找特定成员标识具有Membership (子文档)的Account (父级)文档? 我曾尝试使用$elemMatch和直接查询对象。 注意:两个模式都有一个删除的标志字段( dd )。 如果设置了这个字段,logging已经被删除,不应该被返回: var mongoose = require('mongoose') var membershipSchema = new mongoose.Schema({ m : { type: mongoose.Schema.ObjectId, ref: 'member' }, // Member b : { type: Date, required: true }, // Begin Date e : { type: Date }, // End Date dd : { type: Date }, // Deleted […]

如何在加载后在mongoose子文档中使用Schema方法

在mongoose中我有以下scheme var Schema = mongoose.Schema; var CellSchema = new Schema({ foo: Number, }); CellSchema.methods.fooMethod= function(){ return 'hello'; }; var GameSchema = new Schema({ field: [CellSchema] }); 如果创build新的文件如: var cell = new CellModel({foo: 2}) var game = new GameModel(); game.field.push(cell); game.field[0].fooMethod(); 这是正确的工作。 但是如果你运行这个代码: GameModel.findOne({}, function(err, game) { console.log(game); game.field[0].fooMethod() }) 我得到TypeError:game.field [0] .fooMethod不是一个函数和控制台日志是 { field: [ […]

devise一个mongoose模型

我有一个像这样的mongoose模型: roomURL:String, roomName: String, owner:String, dateCreated: { type: Date, default: Date.now}, lastUpdated: { type: Date, default: Date.now} 我需要存储访问特定房间(roomURL)的所有用户的列表。 所以,每当用户访问这个url,我需要存储他的用户名,以便我可以得到一个用户有权访问的所有板的列表。 什么是最好的方法来做到这一点,最好使用mongoose? 我需要另一个模型吗?

mongoose文本search不返回结果

我正在尝试在组合索引上创build一个简单的文本search。 这是我的mongoose模型: // models/user.js // load the things we need var mongoose = require('mongoose'); // define the schema for our user model var itemSchema = mongoose.Schema({ globalinfo : { ownerobjectid : String, name : String, desc : String, startdate : Date, enddate : Date, price : Number, status : String, statuscss : String, dateadded : […]

mongodb:自动删除arrays的前n个元素

我想自动删除数组字段的前n个元素。 现在,我使用model.find() ,然后doc.arrayField.slice(n) ,然后doc.save() 。 但是,这会将整个文档加载到内存中(如果文档非常大,则不好),并且会消除primefaces性。 有没有办法在MongoDB / Mongoose中以primefaces方式实现? 谢谢!

数据没有从node.js保存在MongoDB中

我想使用node.js和mongodb创build其余的api我input所有的细节,并试图将其存储在mongodb数据库中。 // call the packages we need var express = require('express'); var bodyParser = require('body-parser'); var app = express(); var morgan = require('morgan'); // configure app app.use(morgan('dev')); // log requests to the console // configure body parser app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); var port = process.env.PORT || 8080; // set our port var mongoose = […]