Articles of mongoose

如何用node.js / Express 3和Mongoose(MongoDB)组织代码/逻辑

我看到很多例子,其中node.js / express路由器代码是这样组织的: // server.js var cats = require('cats'); app.get('/cats', cats.findAll); // routes / cats.js exports.findAll = function(req, res) { // Lookup all the cats in Mongoose CatModel. }; 我很好奇,如果将逻辑创build,读取,更新和删除猫猫猫猫CatModel作为方法是没问题的? 所以你可以做一些像cat.findAll(); 模型可能看起来像这样: var Cat = new Schema({ name: { type: String, required: true } }); Cat.methods.findAll = function(callback) { // find all cats. callback(results); } […]

我怎样才能用“Q`与mongoose绑定`save`方法

说我在User.js有以下模式 var mongoose = require('mongoose'); var Q = require('q'); var userSchema = new mongoose.Schema({ phone: { type: Number, require: true, index: { unique: true } } }); module.exports = mongoose.model('User', userSchema); module.exports.findOne = Q.nfbind(module.exports.findOne.bind(module.exports)); module.exports.find = Q.nfbind(module.exports.find.bind(module.exports)); 另一个文件testuser.js var mongoose = require('mongoose'); var Q = require('q'); var User = require('../User'); var connectionStr = "mongodb://localhost:27017/user-model-test"; mongoose.connect(connectionStr, […]

奇怪的mongoose行为 – 文件不会保存到数据库中

在下面的代码中,我尝试用一​​些testing数据填充我的开发数据库。 我想先删除所有文件,然后添加新的testing文件: var mongoose = require('mongoose') , Plan = mongoose.model('Plan') , Async = require('async') Async.series([ function(callback){ // delete all records Plan.find(function(err,docs){ for (d in docs) Plan.remove(d, function(err) { if (err) console.log("error removing records " + err) }); }); callback(); }, function(callback){ var planArray = [ {title: 'Plan A', body: 'Restaurant Financial Plan'}, {title: 'Plan B', […]

Mongodb是否缺乏交易成为交易破坏者?

我一直在做一些研究,但已经达到了我认为MongoDB / Mongoose(在Node.js上)不适合工作的地步。 这是场景… 两个文件:帐户(金钱)信息和库存信息 检查用户的帐户是否有足够的钱 如果是,请检查并扣除库存 从帐户信息扣除资金 看来我真的需要一个交易系统来防止其他事件在步骤之间改变数据。 我是正确的,还是可以在MongoDB / Mongoose中处理? 如果没有,是否有一个NoSQL的数据库,我应该检查出来,最好与Node.JS的支持?

mongoose不保存嵌套的对象

我感到困惑的是为什么mongoose不能拯救我的目标: var objectToSave = new ModelToSave({ _id : req.params.id, Item : customObject.Item //doesn't save with customObject.getItem() neither }); 但是保存这个; 如下所示或使用硬编码值: var objectToSave = new ModelToSave({ _id : req.params.id, Item : { SubItem : { property1 : customObject.Item.SubItem.property1, //also saves with customObject.getItem().SubItem.getProperty1() property2 : customObject.Item.SubItem.property2 } } }); 获得者/设定者是 MyClass.prototype.getItem = function(){ … }; 我的项目对象是相当大的,我宁愿不必指定每一个子属性… 当我查看我的Item对象与console.log(customObject.Item)或当我通过我的API作为JSON返回它,它具有我期望的所有嵌套属性(SubItem,…)。 […]

mongoose:通过在模型数组上循环来查找数据

我陷入了一个asynchronousalgorithm: 我有一系列的mongoose模型: var allRefDatasSchemas = { RefAllotement: mongoose.model('RefAllotement', RefDataSchema), RefModeleConstructeur: mongoose.model('RefModeleConstructeur', RefDataSchema), RefTypeKit: mongoose.model('RefTypeKit', RefDataSchema), RefTypeUtilisation: mongoose.model('RefTypeUtilisation', RefDataSchema), }; 我想抓住每个集合的所有项目,并把它们放在一个数组或类似的东西。 如果我这样做, this findcallback的关键字不会引用当前模型,所以我不可能知道哪些模型项属于 var results = {}; for (var model in allRefDatasSchemas) { allRefDatasSchemas[model].find(function(err, data) { // I'd like to do something like that : // but this.modelName is null, because it isn't the model […]

使用Angular.js将mongoDB对象中的项目从顶部到底部排列

我有一个简单的待办事项列表应用程序与node.js,angular.js,mongoDB和mongoose作为对象build模。 我希望能够将新添加的项目插入列表顶部而不是底部。 我以为这是一个Angular.js预先考虑的问题,但进一步阅读是因为数据存储在一个对象。 有没有办法将其从上到下sorting? 这是一个mongoDB问题或Angular? 任何帮助将不胜感激。 如果你需要更多的代码,我可以提供。 再次谢谢你。 HTML <div class="table-responsive"> <table class="table"> <tr> <td>Vote</td> <td>Song</td> <td>Edit</td> </tr> <tr ng-repeat="todo in todos"> <td><button class="btn btn-success icon-thumbs-up" alt="Up vote this song if you like it.">Vote</button></td> <td>{{ todo.text }}</td> <td><button class="btn btn-danger fa fa-times" ng-click="deleteTodo(todo._id)" alt="Remove the song if you need to make an edit and then […]

关于可用于mongoose查询的可滚动游标的错误

用户模型contian SubscriptionSchema和AccessToken Schema,我也用{capped : 234556}定义了这两个插件模式。 var User = new Schema({ email : String , firstName : String , password : String , isAdmin : Boolean , lastSeen : Date , subscriptions : [ SubscriptionSchema ] , accessTokens : [ AccessToken ] }, { toObject : { virtuals : true } , toJSON : { virtuals […]

MEAN应用程序中的项目单独页面

我正在用Node,Express,Mongoose和Angular编写应用程序。 我可以在页面上显示所有项目。 我的下一步是为数据库中的项目编写单独的页面,所以我创build了路线: app.get '/products/:product_id', (req, res) -> Product.findById req.params.product_id, (err, product) -> res.send(err) if (err) res.render('product.html', { name: product.name } ) return return 一切都很酷,我可以在product.html中显示名称<%= name%>,但Angular不起作用。 没有“/:product_id”工作。 这是我获得所有产品的途径: app.get '/api/products', (req, res) -> Product.find (err, products) -> if (err) res.send(err) res.json(products); # return all products in JSON format return return 而在前面: $http.get('/api/products') .success (data) -> […]

在数组字段的对象内使用mongoose寻找匹配

我有这个模式: var eventSchema = new mongoose.Schema({ name: String, tags: [{ tagId: mongoose.Schema.Types.ObjectId, name: String, description: String }], }); var Event = mongoose.model('Event', eventSchema); 还有一些标签ID,例如: var arrayOfTagsIds = [23, 55, 71]; // in this example I'm not using real mongo id's, which are strings 我怎样才能使用mongoose的发现search具有任何这些标签的事件? 例如,这个事件应该在结果中,因为它有tagId 23和tagId 55: { _id: …, name: 'Football tournament', tags: [{ […]