Articles of mongodb

在加盖的集合上放慢可拖动的光标

我使用MubSub来允许用户订阅特定的查询,并在可用时立即获取推送的更新。 该库使用加盖的集合来获得可放大的游标。 我遇到的问题是,当我只有一个可放大的光标时,一切都很顺利。 大约需要几ms来获取游标。 但是,当我添加更多的订阅(从而打开更多的游标),光标的接收有时可能需要8秒钟。 我试过添加索引,但是根本没有帮助。 这里是我的collections的统计数据: { "ns" : "mDB.myCollection", "count" : 395669, "size" : 325551880, "avgObjSize" : 822.7884418541761, "storageSize" : 1000001536, "numExtents" : 1, "nindexes" : 3, "lastExtentSize" : 1000001536, "paddingFactor" : 1, "flags" : 1, "totalIndexSize" : 81678240, "indexSizes" : { "subscriptionIndex" : 32704000, "_id_" : 11593568, "subscriptionQueryAsc" : 37380672 }, "capped" […]

Node + mongo-native:如何查找和更新集合中的值?

我有用户帐户,按时间到期。 时间以毫秒为单位存储在MongoDB中。 用户由_id标识。 这是架构: { "_id": { "$oid": "506a1438be4f73c11c000002" }, "email": "admin", "password": "admin", "first_name": "admin", "last_name": "admin", "country": "USA", "group": "admin", "expires": 1349129272918 } 要为用户帐户添加+ N天,我使用find(),然后更新()(不知道为什么,但findAndUpdate无法获得以前的值): app.post('/users/add', function(req,res){ addDays(req.body.id, req.body.days, function(status){ res.send(200); }) }); function addDays(id, days, callback) { var obj_id = BSON.ObjectID.createFromHexString(id); db.collection("users", function(error, collection) { collection.find({_id: obj_id}, function(err, user) { var oldexp […]

Mongodb本地聚合与光标

我为nodejs使用了mongodb本地驱动程序。 我只想知道是否有任何可能性,我们可以做聚合,但方法将返回一个游标对象? 谢谢!

在一个循环内部的Mongoose查询

我试图用mongoose开发一个简单的应用程序。 给定一个用户名'group.contacts'的数组,我想获得这些用户的相应ID。 但是,循环不能按预期工作:循环在.find()方法完成之前继续,因此我无法获取所有人员的ID。 我怎么解决这个问题? for(var v = 0; v < group.contacts.length; v++) { PersonModel.find({ name: group.contacts[v] }, function (err, person) { if(!err && person) { console.log('Found ' + person._id + ' ' + v); } }); }

如何在MongoDB中build模友谊?

我想在我的项目中使用MongoDB和Node.js。 我需要的是,build模友谊关系数据库(用户1关注用户2)。 Ina关系数据库很容易,但是我不知道如何用MongoDB来做到这一点。 我也将使用REST API,所以我应该能够通过REST API进行关系 编辑: 这是一个好方法吗? following: [[{ type: Schema.Types.ObjectId, ref: 'User' }]] 如果我这样做,我应该保存追随者和跟随? 我得到了太多的recursion错误。

将客户端JS连接到服务器端的NodeJS应用程序

我是一个完整的NodeJS noob,我试图了解的应用程序结构。 我有一个使用Socket.IO和MongoJS的基本应用程序,它本质上是一个跟踪系统,从客户端脚本中提取variables并将它们存储在Mongo中。 以下是我想象的工作原理: 用户在我们的10个站点中的1个上加载页面 该页面上的JS文件捕获引用的URL和时间戳 这两个值然后通过Socket.IO传递给Node应用程序 该应用程序然后连接到MongoDB并存储值 这看起来很直接,但这里是我的困惑所在。 在所有的文档和例子中,我已经看到了与socket.io的连接已经通过一个HTML页面生活在应用程序。 在我的情况下,唯一的客户端文件是一个单一的JavaScript文件,收集的跟踪信息。 这里是我想用socket.io连接到服务器的客户端JS: $.getScript('/socket.io/socket.io.js', function(data){ console.log(data); }); var cmnPub = "Publishers.com" var socket = io.connect(document.location.href); socket.emit('adTracker', { publisher: cmnPub, time : timeStamp, referingURL : document.location.href }); 这是我的服务器端代码: var app = require('http').createServer(handler) , io = require('socket.io').listen(app) , fs = require('fs') app.listen(1337); io.configure(function () { io.set('authorization', function (handshakeData, […]

如果存在var,如何在查询中创build对象或放弃对象?

我正在与mongodb,与ajaxforms,它工作正常…我想放弃查询中的一些元素。 这是代码: var preVariable= { precio_alquiler: {$lte:query.price_input_by_user}, tipo_usuario: query.type_of_user, }; db.collection('data').find(preVariable,{_id:0},{safe:true}, function(err, result) 说明: precio_alquiler是元素的价格 tipo_usuario是包含的表单中的一个select select(name='type_of_user') option(value="Commerce") Comercio option(value="User") Usuario option(value="Mayorist") Mayor 所以问题是…如果用户想咨询一个元素的价格,并忽略用户的types,如何创build查询variables? 这是一个可以解释问题的例子 var preVariable= { precio_alquiler: {$lte:query.price_input_by_user}, tipo_usuario: query.type_of_user || "dont create the object tipo_usuario", };

在蒙古最多访问

如何使用mongodb获取每天/每周/每月访问量最大的页面/条目 此解决scheme适用于统计信息,但不适用于访问最多的条目列表MongoDB用于存储大量指标/分析数据的方法 地图/减less太慢…或不? 谢谢

数据集Node.js中的最近邻居

我有一个将数据保存到MongoDB的Node.js应用程序。 给定一个文件,我想在数据库中find最相似的文件。 我的想法是实现某种最近邻algorithm,将所有logging作为训练序列,并返回最相似的文档(包括这两个文档相似程度的某种百分比)。 例如在我的数据库中有这些logging… { name: "Bill", age: 10, pc: "Mac", ip: "68.23.13.8" } { name: "Alice", age: 22, pc: "Windows", ip: "193.186.11.3" } { name: "Bob", age: 12, pc: "Windows", ip: "56.89.22.1" } …我想find最接近这个文件的文件 { name: "Tom", age: 10, pc: "Mac", ip: "68.23.13.10" } // algorithm returns "Bill", .76 是否有任何节点模块/实现采取任何forms的对象/参数,并返回最近的邻居?

使用Node&Redis获取10个随机项目

我试图找出如何从一个Mongo集合中获得一组10个随机项目。 我的计划是在Redis中存储一组Mongo ID,使用Redis SRANDMEMBER命令获取10个随机ID,然后从Mongo集合中获取它们。 由于我正在使用Node,所以我无法使用SRANDMEMBER 10,因为节点“redis”包不接受可选的第二个参数。 我真正绊倒的是如何以asynchronous友好的方式做到这一点。 我曾尝试使用由节点asynchronous库提供的几个工具,如Waterfall和While,但Redis调用总是比数据晚。 编辑#2: 为了回应下面的帮助,我已经完善了我的function: client.send_command("SRANDMEMBER", ["album_id_set", "10"], function(err, results) { if (err) console.log('Redis error: ' + err); Album.find({ '_id' : { $in: results } }, function(err, result){ if (err) console.log('Mongo error: ' + err); response.json(result); }); });