Tag: mongoose

mongoose和节点错误:不能调用未定义的方法“模型”

我尝试了一下关于带节点的mongoose / mongodb的教程,并且陷入了试图从集合中获取express / node来res.send json文档的问题。 当我尝试访问localhost:3000 / mongodb时,下面的代码会产生错误 数据库和集合存在。 collections有3个文件。 app.js /** * Module dependencies. */ var express = require('express'); var http = require('http'); var path = require('path'); var mongoose = require('mongoose'); var app = module.exports = express(); // all environments app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.engine('html', require('hogan-express')); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); […]

从node.js中的mongoDB数据生成JSON树

有很多像这样的问题,但不幸的是我没有find任何适合我的情况。 最近的是从MongoDB Node.Js创build一个JSON树,但它仍然没有按预期工作。 或者,也许我的头不能包装这个问题… 我有架构,我的问题的关键组件如下所示: var userSchema = new Schema({ _id: {type: Number}, children: [{type: Number, ref: 'User'}] )}; 每个用户可能有三个孩子的用户,所以它可以无限深入。 幸运的是,我必须涵盖两种情况 – 从特定用户构buildJSON树最多3个嵌套 计算来自特定根的10个嵌套的数据。 我尝试在我的express.js api中写这样的recursion函数: api.get('/user/tree/:user_id', function (req, res) { var user_id = req.params.user_id; var depth = 0; var root = {}; function walker(parent) { if (depth >= 3) { return res.send('whole data, not […]

寻找一种更有效的方法在mongoose-q中做很多查询

我正在使用mongoose-q(对于node.jsstream行的mongoose mongodb ORM的承诺封装)。 但是,我倒下了,也许这些嵌套的承诺没有比callback更好。 有没有更好的方法来做这些查询? User.findById(toFollowId) .execQ() .then(function(user){ if (!user) return res.send(404); user.followers.addToSet(me); me.following.addToSet(user); me.saveQ() .then(function(me){ user.saveQ() .then(function(user){ getFollowerStats([me, user], function(err, data){ if ( err ) return res.json(400, err); res.json(data); }); }).fail(function(err){ res.json(400, err); }); }) .fail(function(err){ res.json(400, err); }); }).fail(function(err){ next(err); });

如何在更新mongodb时返回更新的对象?

我试图通过mongo中的另一个字段更新objectId。 我现在的代码是: twitterDb.update({'twitterId': t.id},tweetData, {upsert:true}, function(err, twitterDb) { //do stuff here }); 请注意,twitterId与objectId不同。 如何返回完整的对象,以便可以获取objectId? 提前致谢!

改变mongoose的文件顺序

我在第一次使用mongoose.js与数据库鬼混,但我无法弄清楚对我来说似乎是非常基本的function。 我想在数据库中放置一个特定的文档,更新文档加载的顺序。 除了可能的.sort()之外,我找不到一些内置的方法,但是这意味着我必须跟踪每个实例的索引,当我想更改顺序时相应地更改它们,然后对基于这个新的属性的数据库,这似乎是重新发明轮子给我。 我只是忽略了一些有关数据库的基本概念,我不应该这样做吗? 或者我错过了我正在寻找的function?

使用mongoose分页包的模型错误

我试图使用mongoose分页包,并试图按照提供的文档,但它似乎没有与我的模型。 我收到此错误消息: /Users/user/Desktop/Projects/node/blog/app/models/blogModel.js:16 BlogPostSchema.paginate({}, 2, 10, function(error, pageCount, paginatedResults ^ TypeError: Object #<Schema> has no method 'paginate' at Object.<anonymous> (/Users/user/Desktop/Projects/node/blog/app/models/blogModel.js:16:16) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/Users/user/Desktop/Projects/node/blog/server.js:18:16) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) 我不知道为什么我收到这个错误,因为插件应该允许分页方法。 blogModel.js: var mongoose = require('mongoose'); var Schema […]

快速连接mongoose插件到mongodb

我正在尝试在一个快速项目中使用mongoose自动增量插件,并且由于某种原因我无法连接。 这是在我的app.js文件中看起来像 //dependencies var config = require('./config'), express = require('express'), session = require('express-session'), mongoStore = require('connect-mongo')(session), http = require('http'), path = require('path'), passport = require('passport'), mongoose = require('mongoose'), autoIncrement = require('mongoose-auto-increment'), helmet = require('helmet'); var stripe = require("stripe")("sk_test_nEgbqClEavLcf8zGIj4GtaOy"); //create express app var app = express(); //keep reference to config app.config = config; //setup the web […]

如何使用新的数据使用expressJS重新呈现视图?

我正在使用ExpressJS和MongooseJS(用于访问MongoDB)创build一个NodeJS清单系统。 我正在尝试实施一个search栏。 我希望用户input到search栏中,按回车键,然后查看包含数据库中所有匹配项的更新表。 目前,当用户在search栏中input后按下input键时,jQuery会使用search栏中的文本将POST发送到我的Express服务器。 使用mongooseJS,我find所有匹配。 问题是,当我再次呈现视图时,页面不会更新并向用户显示与search匹配的新信息。 这是我的路由器代码: var express = require('express'); var router = express.Router(); var InventoryObject = require('mongoose').model('InventoryObject'); var searchdata = ''; /* GET home page. */ router.get('/', function(req, res) { var regSearch = new RegExp('.*'+searchdata+'.*', 'i'); InventoryObject.find({productId: {$regex: regSearch}}).sort('-_id').exec(function (err, data) { res.render('index', {'inventoryObjects' : data}); searchdata = ''; }); }); router.post('/', function(req, […]

如何在Mongoose中使用population / ref保存Schema

先有用户,然后创build商店。 如何做创build商店和参考用户? 1个用户对许多sotres 1个商店给1个用户 //架构 var UserSchema = new Schema({ name: String, stores : [{ type: Schema.Types.ObjectId, ref: 'Store' }] }); var StoreSchema = new Schema({ name: String, user : [{ type: Schema.Types.ObjectId, ref: 'User' }] }); mongoose.model('Store', StoreSchema); mongoose.model('User', UserSchema); // express / mongoose save() exports.storeAdd = function (req, res) { new Store({ name […]

MongoDB,Mongoose – 将非持久数据字段添加到模式的最佳方式是什么?

我有Mongoose模式,我需要添加一个非持久字段。 这个领域的重点是存储一些与持久数据字段相关的状态,但不需要将其存储到数据库中。 我看到一些Mongoose的替代品提供了这样的function,例如https://github.com/simpleviewinc/mongolayer#modeladdfieldargs ,但是我无法在Mongoose中find类似的function。 任何提示将不胜感激!