草庐IT

node.js - 在 mongodb 中获取键/集合列 - nodejs

我正在尝试使用以下代码获取集合的所有列/键:varDb=require('mongodb').Db;//formongodbvarConnection=require('mongodb').Connection;varServer=require('mongodb').Server;varBSON=require('mongodb').Server;varObjectID=require('mongodb').ObjectID;DbModels=function(host,port){this.db=newDb('test',newServer(host,port,{auto_reco

node.js - 如何在带有 NodeJS 的 MongoDB 中为 mapReduce 使用变量

我有一组看起来像的事件{_id:BSONIDname:"event_name",values:{a:10,b:1000,c:50}}我正在尝试使用mapReduce它们使用map=function(){returnemit([this.name,this.values['a']],this.values['b']);}reduce=function(key,values){//stuff}collection.mapReduce(map,reduce,{out:{inline:1}},callback);但是,我希望能够动态更改我映射的值。本质上,我想要varkey='a';varva

node.js - 无法使用 Mongoose 在 NodeJS 中使用 $ 或查询

我有一个NodeJS应用程序,它有一个函数,它接受一个id并从我的MongoDB数据库返回一个与所述id相对应的对象。id可以匹配到我模型中的_id(ObjectID)或external_id(字符串),为什么我要过滤掉id等于_id或等于external_id的对象。我写了这段代码,但是当我在NodeJS中运行它时它似乎不起作用,但是如果我在终端的mongo中尝试它它工作正常:myModel.findOne({$or:[{_id:my_id},{external_id:my_id}]},function(err,model){...});由于它在终端中工作,我猜这两个模型对象的不同类

javascript - 如何保护 Nodejs 中的 RestFul Api?

现在我正在使用https://github.com/baugarten/node-restful这有助于我在API中工作,问题是?我在Express框架中工作,有没有办法保护从其他站点到我的“GET”请求。我使用来自express的CSRF,但仅通过POST、PUT、DELETE方法工作,并带有FOrbidden403消息,当treatmakeanithingsincecurlinconsole但如果我对Get方法curllocalhost:3000/posts进行curl给我一个包含所有帖子的数组。app.use(express.csrf());app.use(function(re

javascript - Mongoose ,nodejs,全文搜索

我正在尝试使用Mongoose和nodejs设置一个简单的关键字全文搜索,这是到目前为止的代码:vardb=mongoose.createConnection('localhost',config.mongoDbName),ContSchema=Schema({'idUser':String,'title':String,'category':String,'slug':String,'description':String}).index({'title':'text','description':'text'}),ContModel=db.model('Cont',ContSche

node.js - NodeJS/Express/Mongoose 发送后报错Can't set headers

我正在使用MEAN堆栈和Mongoose来查询MongoDB上的数据。第一次调用/api/Validations没问题,但第二次,它总是会收到此错误:这是我的代码,server.js:varexpress=require('express'),app=express(),bodyParser=require('body-parser'),breezeRoutes=require('./breeze-routes'),controller=require('./controller'),compress=require('compression'),cors=require('cors'

javascript - NodeJS + SocketIO 大套接字事件管理

我有一百万恐龙用户都登录了。Dinosaurs希望看到其他Dinosaurs何时实时更新它们的配置文件,因此它们被挂接到NodeJS/Mongoose模型中,如下所示:dinosaur.schema.post('save',function(doc){socket.emit('恐龙:保存',文档);});其中socket是连接的Dinosaur的套接字。恐龙还将看到来自其他几个事物的实时更新。也许是新闻、评论等等。那么,我的问题是,在某些情况下,这种事件的发出会变得越来越大并影响性能吗?在客户端,我会有类似socket.on('dinosaur:save',function(){})的

node.js - NodeJS日志服务设计

我需要使用NodeJS和Mongo编写日志服务。它每秒至少收到10,000个http请求,而且我不能丢失数据。我正在使用带有负载均衡器的多台服务器,每台服务器也使用集群进行横向扩展。有没有人有不丢失数据的想法?我想也许我可以将请求保存在队列(sqs)中,并且每个间隔读取消息并将批量插入数据库,如果失败则将其保留在队列中,这样我就不会丢失数据。所有服务器都可以读取和写入同一个队列吗?有人有更好的主意吗?谢谢。 最佳答案 这是一个非常模糊的问题,但您的思路是正确的。如果您的主要目标是不丢失日志数据并保持高吞吐量,您应该始终尝试获取任何传

c# - 尝试使用带有 GUID 的 C# 持久化的 mongodb 读取 nodejs 中的数据

我看到了一些关于此的问题,但似乎没有一个能直接解决这里的问题。所以场景是有一个基于C#的API,它将数据写入mongodb实例并使用GUID作为mongo中的_id,例如它看起来像:"_id":newBinData(3,"+jscvebAl0+NO0n1WySLTQ=="),所以假设它不会改变,它将永远是那个数据类型,我对此无能为力。所以在nodejs中,我读入了一个文档,其中包含一些与其他资源相关的UUID,但是当我使用nodejs2.0驱动程序读入文档时,UUID变量被读入为GUID字符串,如下所示:"someIdField":"c1489470-4e04-49ba-ae91-a2

node.js - nodejs mongodb 查找修改并返回新的。无法规范化查询

我的问题与此有关findAndModifyErrorinmongodb-nodejs-errorcode17287但解决方案没有奏效(我尝试指定顺序,但我得到了同样的错误)我认为这可能与我正在使用example而不是_id(_id是此集合中的一个字段,在这种情况下我只是不想通过_id进行搜索)完全不确定...错误:{[MongoError:exception:nextSafe():{$err:"Can'tcanonicalizequery:BadValuebadsortspecification",code:17287}]name:'MongoError',message:'excep