Tag: mongoskin

如何检索MongoDB中的“相关”文档?

我为MongoDB使用node.js,express和MongoSkin驱动程序。 我试图在我的博客应用程序中显示一个显示博客文章列表的视图。 每篇文章都有一个作者ID的参考。 我试图对每个post进行第二次查询,以获取每个引用的完整作者文档。 一切asynchronous都让我感到困惑。 在获取博客文章列表的callback中,我正在循环阅读每篇文章,并进行第二次调用以获取关联的用户。 一旦所有post都添加了作者文档,我不知道如何渲染视图。 我甚至不确定我是否正在做这个权利。 如何参考其他文件来完成我想要做的事情? // getPageOfPosts is a custom helper that accepts the page number and number of items to retrieve. db.collection('blogPosts').getPageOfPosts(req.param('page') || 1, 3, function (err, blogPosts) { if (err) req.next(err); blogPosts.forEach(function (blogPost) { db.collection('users').findOne({ _id: blogPost.authorId }, function (err, user) { if (err) req.next(err); blogPost.author = user; }); […]

在Mongoskin分页(跳过+限制)

从看mongodb的例子来看,我尝试了一些东西,比如: // returns an empty array funnyPosts.find({limit:5}).toArray(function(err, result) { console.log(result); }); 也试过 // returns { _construct_args: [], console.log(db.collection('funny_posts').find().skip(3).limit(3));

为什么在MongoDB中显式.open()连接?

我有这个连接集: var db = mongo.db('mongodb://localhost/inline_dev', {native_parser:true}); 然后我打开一个连接,并获取一些文件… db.open(function(err, db) db.collection('test').find().toArray(function(err, dbDocs) { if (!err) { console.log(dbDocs) } }); …但是,这似乎也工作,没有明确的.open() : db.collection('test').find().toArray(function(err, dbDocs) { if (!err) { console.log(dbDocs) } }); 问)为什么我/我应该明确地open()连接,因为它似乎连接打开,只要我试图查询集合无论如何? 实际上,只要我将浏览器指向应用程序的URL(至less根据mongod日志),连接就会被打开。

如何使用Mongoskin无序批量插入?

我在使用Mongoskin在Node上执行批量插入(MongoDB 2.6+)时遇到了麻烦。 var dbURI = urigoeshere; var db = mongo.db(dbURI, {safe:true}); var bulk = db.collection('collection').initializeUnorderedBulkOp(); for (var i = 0; i < 200000; i++) { bulk.insert({number: i}, function() { console.log('bulk inserting: ', i); }); } bulk.execute(function(err, result) { res.json('send response statement'); }); 上面的代码给出了以下警告/错误: (node) warning: possible EventEmitter memory leak detected. 51 listeners added. Use emitter.setMaxListeners() […]

Mongodb:如何返回查询列表中存在的数组元素

我有一个名为商店的集合。 结构如下: [ { '_id' : id1, 'details' : {name: 'shopA'}, 'products' : [{ _id: 'p1', details: { 'name': 'product1' } },{ _id: 'p2', details: { 'name': 'product2' } }, { _id: 'p4', details: { 'name': 'product4' } } },{ '_id' : id2, 'details' : {name: 'shopB'}, 'products' : [{ _id: 'p1', details: { 'name': […]

在Heroku上为Mongo Labs数据库configurationNode.js连接string

我的web应用程序(build立在Node.js和Express上)在本地工作正常,但是当我将它部署到Heroku时,我无法连接到Mongo Labs数据库。 我更改了我的'app.js'文件中的连接string,以正确反映新的Heroku Mongo Labs数据库的URI(假冒的用户名和密码在下面被replace)。 我也尝试了几个stackoverlow解决scheme不能连接到mongolab与heroku上的node.js以及https://devcenter.heroku.com/articles/getting-started-with-nodejs#using-mongodb但是,似乎也工作。 我怀疑这是有点不同,因为我使用Mongoskin。 原来的连接: var db = mongo.db("mongodb://localhost:27017/userdir", {native_parser:true}); 更改为新的连接: var db = mongo.db("mongodb://user:pass@dbh23.mongolab.com:27237/heroku_app24581691",{native_parser:true}); 任何想法,我在这里失踪? var express = require('express'); var path = require('path'); var favicon = require('static-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); // Database var mongo = require('mongoskin'); var db = mongo.db("mongodb://user:pass@dbh23.mongolab.com:27237/heroku_app24581691", {native_parser:true}); // […]

MongoDB不会从nodejs应用中的mongodb中获取一些结果

我想通过mongoskin从mongodb读取一些数据。 但是,当我尝试调用localhost:3000 /任务时,nodejs抛出错误 在我的数据库'todo'中有一些项目在集合'任务'。 当我启动应用程序时,控制台中的结果工作正常。 任何人都可以看到我写错了什么? 消息消息: 500 TypeError: Cannot read property 'tasks' of undefined at exports.list (/Users/piet/Websites/privat/mongo/routes/tasks.js:7:8) at callbacks (/Users/piet/Websites/privat/mongo/node_modules/express/lib/router/index.js:164:37) at param (/Users/piet/Websites/privat/mongo/node_modules/express/lib/router/index.js:138:11) at pass (/Users/piet/Websites/privat/mongo/node_modules/express/lib/router/index.js:145:5) at Router._dispatch (/Users/piet/Websites/privat/mongo/node_modules/express/lib/router/index.js:173:5) at Object.router (/Users/piet/Websites/privat/mongo/node_modules/express/lib/router/index.js:33:10) at next (/Users/piet/Websites/privat/mongo/node_modules/express/node_modules/connect/lib/proto.js:193: 15) at Object.methodOverride [as handle] (/Users/piet/Websites/privat/mongo/node_modules/express/node_modules/connect/lib/middleware/me thodOverride.js:48:5) at next (/Users/piet/Websites/privat/mongo/node_modules/express/node_modules/connect/lib/proto.js:193: 15) at Object.urlencoded [as handle] (/Users/piet/Websites/privat/mongo/node_modules/express/node_modules/connect/lib/middleware/ur lencoded.js:49:37) 我的app.js: var […]

MongoDB / Mongoskin:$ addToSet返回值

我在MongoDB中使用MongoDB和NodeJS服务器。 我试图添加一个条目在文档的字段使用addToSet以避免添加重复项。 我怎么知道我的添加是否成功? 检查返回值并没有真正帮助我,它总是返回1 。 我知道使用mongo shell我可以从WriteResult中看到我想要的。 有没有办法使用Mongoskin来访问这个? 这是我能得到的最接近的。 有什么方法可以检查添加是否成功? 先谢谢你。

正确使用Mongoskin

我通常使用mongoskin因为我喜欢靠近数据库。 通常,我使用db.coffee文件进行设置,其中包含以下内容: mongo = require 'mongoskin' # either local module.exports = mongo.db 'mongodb://localhost/database' # or remote module.exports = mongo.db 'mongodb://<user>:<pass>@<host>:<port>/<db>?auto_reconnect=true' 然后我用我的其他来源: db = require 'db' users = db.collection 'users' # Now use the collection in handlers and middleware 当我使用本地mongo服务器时,这似乎工作得很好,我已经有几个月的正常运行时间,而且从来没有成为问题。 但是,当我使用远程秒时,如果服务器运行时间超过几分钟,则会出现问题 – 即使使用auto_reconnect ,与mongodb的连接似乎auto_reconnect丢失。 我想这是因为localhost连接永远不会自动closures。 然而,这导致我想如果我可能使用mongoskin在错误的方式,或者如果只是一个错误与auto_reconnect ?

有没有一种方法来列出与蒙戈金集合?

我已经build立了数据库连接。 我需要列出数据库中的集合名称。 可能吗?