Tag: mongoskin

用mongodb在javascript中创build一个多数组的数组

我在我的mongodb中有这个结构 { category:['A','B'], info:….., } { category:['A','F','T'], info:….., } { category:['A','C'], info:….., } { category:['D','B'], info:….., } 我必须查询所有类别, var db = mongo.db(read+"@127.0.0.1:27017/database",{safe:false}); db.collection('comercio').find({},{_id:0,'category.$':1},function(err, result_array) 第一个问题,有什么办法可以得到所有的类? 另一个aproach而不是我的? 第二个问题…. 我必须做一个数组,包含所有类别,但不重复任何类别…在这个例子中,我必须做一个数组,包含这… all_categories=['A','B','C','D','F','T']; 再次感谢你们

如何从节点mongo本机驱动程序获得数据库的实例?

考虑一下,我在主app.js文件中打开了MongoDB连接,下面的代码放在callbackapp.js : mongodb.connect('MongoDBUrlGoesHere', function (err, db) { app.listen(app.get('port'), function AppListnCB() { console.log("Server listening on port " + app.get('port')); }); }); 这完全是为了在整个应用程序中只有一个数据库实例。 现在,如果我们在另一个external.js文件中,并且需要一个已连接的同一个db对象。 如果我们使用蒙古语或mongoose,这可以很容易地完成 有人可以帮助我find如何使用本地驱动程序可以做到这一点?

用Mongoskin插入多个文档到MongoDB中

我试图通过一个循环插入几个文档,但是我遇到了ObjecId的唯一性问题。 我有这个function: // Fetch all client documents. db.collection('clients').find({}, {cost: 1}).toArray(function(err, dbDocs) { if (err) throw err; // Set up a general doc. var currentTime = new Date(); var doc = { year: currentTime.getFullYear(), quarter: Math.floor(currentTime.getMonth() / 3) + 1, paid: false }; // For each client document, insert a document to invoices collection. for (var […]

由一个大的结果集引起的MongoDb错误

当我试图得到一个完整的结果集(~40结果)时,我实际上面临一个问题。 每个对象都有〜260个子对象引用和其他对象。 实际上,当我尝试显示30个对象时,它就起作用了。 但是,当我用40尝试它不。 每个对象都是正确的,没有数据是无效的。 看起来,我已经超过了mongoDb或默认Mongoskin(我用来访问MongoDB的库)授权的最大大小(4或16 MB),并且mongodbclosures了与我的应用程序的连接池。 那么如何增加最大文件大小或最大结果集大小来显示我所需要的一切? 编辑 :我的collections大小是8Mb(从MongoVue信息) 编辑2:我用来获取我的数据的代码: db.collection("roadmap").find({}).toArray() 我的db的屏幕截图: 编辑3 :我改变了我利用我的数据的方式 @em.collection('roadmap').find({}, (err, resultCursor)=> nextItem = (err, item)=> if !item) return console.log item resultCursor.nextObject(nextItem) resultCursor.nextObject(nextItem) ) 它既不工作也不工作,请求被执行,然后,我失去了我的mongodb连接。 如果我在应用程序中注释这段代码,一切都很好。 编辑4 :全堆栈跟踪,这是一个库问题比数据库问题更多 Error: parseError occured at [object Object].<anonymous> (/var/www/xxxxxx/Ws/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:192:34) at [object Object].emit (events.js:98:17) at Socket.<anonymous> (/var/www/xxxxxx/Ws/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/connection/connection.js:393:20) at Socket.emit (events.js:95:17) at Socket.<anonymous> (_stream_readable.js:764:14) at […]

findOne与mongoskin和节点

我正在尝试(并失败)得到一个MongoDB的findOne函数。 我遵循这个教程( http://cwbuecheler.com/web/tutorials/2014/restful-web-app-node-express-mongodb/ ),它工作正常,但是当我试图得到一个简单的findOne去我有有这样的问题,有人可以帮我吗? 我已经search了每个教程,我知道你不能只使用findone({_ id:“idnumber”}),但我不知道我的错在哪里: router.get('/userlist/:id', function(req, res) { db = req.db; ObjectID = require('mongoskin').ObjectID; var userToGet = req.params.id; db.collection('userlist').findOne({_id: db.ObjectID.createFromHexString(userToGet)}, function(err, result) { console.log(result.username); }); }); 我得到错误“不能调用未定义的方法'createFromHexString',我应该在哪里需要我的mongoskin.objectid? 我findall完美的作品: router.get('/userlist', function(req, res) { db = req.db; db.collection('userlist').find().toArray(function (err, items) { res.json(items); }); }); 任何帮助将不胜感激。

用Mongoskin查找不同types的MongoDB文档

这是我在MongoDB中的一个文档示例: { "_id": ObjectId('5525039895884d66710d0fc3'), "prid": "63527", "data": { "sku": "HF22-81639", "name": "Product Test", "ean": "8763900872512", "description": "This product is my first test", } } 我想制作几种search方法,其中search条件是通过SKU,EAN或PRID进行search。 我创build的方法,但不工作,这是我创build的方法之一的例子,它不工作,只是find我的数据库的第一个文件,但没有任何search条件。 这个search“_id”,如果它完美的作品: // GET – "_id" app.get("/:id", function(req, res, next) { req.collection.findOne({ _id: id(req.params.id) }, function(e, result) { if(e) return next(e); res.send(result); }); }); search“SKU”不起作用(这是我需要帮助的地方): // GET – "sku" app.get("/sku/:id", […]

用Mongoskin在每个产品的字段描述中查找一个MongoDB文档

这是我在MongoDB中的一个文档示例: { "_id": ObjectId('5525039895884d66710d0fc3'), "prid": "63527", "data": { "sku": "HF22-81639", "name": "Product Test", "ean": "8763900872512", "description": "This product is my first test", } } 此search“描述”不起作用(这是我需要帮助的地方): app.get("/description/:id", auth, function(req, res, next) { req.collection.findOne({ "data.description": req.params.id }, function(e, result) { if(e) return next(e); res.send(result); }); }); 我需要通过一个词来查找,集合中存在的所有产品都包含在描述字段中。

数据库连接error handling和尚

我正在使用一个看起来像一个代码的和尚 var monk = require('monk') var db = monk('localhost/mydb') if(!db){ console.log('no connection') } 当我运行它,控制台日志“无连接”,但我想知道为什么它不连接,(也许看到一个堆栈跟踪“我该怎么做?

使用NodeJS,MongoDB和Monk更新数组项

我有这样的数据集: { name : 'Doc Name', photos: [ { name: 'photo1', url: 'http://…..' }, { name: 'photo2', url: 'http://……' } ], etc … 使用Monk https://github.com/LearnBoost/monk如何更新photo2? 我可以使用一个索引,因为我正在遍历字段。 我目前的尝试下面给我一个错误,我不能使用JSONselect器的variables(如在索引中)。 collection.update({_id: data._id}, {photos[i].data: filename}, function(err, updatedata) { });

如何检查Mongo的$ addToSet是否重复

我正在使用Mongoskin + NodeJS添加新的关键字到我的MongoDB。 我想通知用户该条目是重复的,但不知道如何做到这一点。 /* * POST to addkeyword. */ router.post('/addkeyword', function(req, res) { var db = req.db; db.collection('users').update({email:"useremail@gmail.com"}, {'$addToSet': req.body }, function(err, result) { if (err) throw err; if (!err) console.log('addToSet Keyword.' ); }); }); 结果似乎没有任何用处,因为它不告诉我关键字是否被添加。