草庐IT

Node-red

全部标签

node.js - MongoError 未知组运算符

我正在为NodeJS使用MongoDb驱动程序。我在使用聚合时遇到问题。错误是{"name":"MongoError","message":"unknowngroupoperator'_id'","ok":0,"errmsg":"unknowngroupoperator'_id'","code":15952}对于下面的脚本:MongoClient.connect(url,function(err,db){if(err){console.log('UnabletoconnecttothemongoDBserver.Error:',err);return;}varcollName="ord

node.js - Mongoose 查询,选择 10 个最近的文档而不改变顺序

我需要从我的消息集合中选择10条最近的消息,并将它们作为数组从旧到最新返回。示例:m1,m2,m3,...[m19,m20,m22]slice运算符很棒,因为它可以取-10这样的值,因此可以从数组中选择最后10个值。问题是我想对整个查询响应进行排序,而不是响应中的属性(slice运算符有2个参数,第一个是path)。其实我做的是:.find({conversation:conversationId}).sort('-updatedAt').limit(10).exec(function(err,messages){});但它返回的数组包含从最近到较旧的消息。我该怎么做才能保持良好的秩序

node.js - 使用 socket.io 发送实时分析的最佳方法

我正在将socket.io和node.js/mongoDB用于一个应用程序,它将在Parents和Drivers之间发送实时分析假设Driver正在沿着一条路径移动,对于每次位置变化,他都会将他的位置发送给特定parent的列表。我能想到一种方法来实现这样的功能1-我创建了两个数组varuserSockets={};vardriverSockets={};每当连接用户/驱动程序时,我都会这样做ForDriver-driverSockets[accId]=socketForUser-userSockets[accId]=socket现在如果司机必须发出位置变化,他会做类似的事情userS

node.js - 新的 Date().toISOString() 问题

这是一个奇怪的问题。在我的mongodb中,我有这样的ISODate:ISODate("1937-08-03T00:00:00.000Z")在我的发现中,我正在做varisoString=newDate(inputDate).toISOString();db.collection.find({dob:newDate(isoString)})'inputDate'cabbeyyyy-MM-ddorMM/dd/yyyy当我使用Date().toISOString()转换用户输入的字符串“1937-08-03”时,我得到了1937-08-03T00:00:00.000Z但是当我的日期格式更改

node.js - 在 Node 中进行集成测试后清理 mongodb

我有一个用node编写的带有mongodb后端的api。我正在使用supertest自动测试api。当然,这会导致对数据库进行大量更改,我希望获得一些关于管理它的选项的输入。目标是每个测试都不会对数据库产生永久影响。测试完成后,数据库看起来应该与测试运行前完全一样。在我的例子中,我不希望数据库在测试之间被删除或完全清空。我需要始终在数据库中维护一些真实数据。我只想还原测试本身所做的更改。对于关系数据库,我会围绕每个单元测试放置一个事务,并在测试完成(通过或失败)后将其回滚。据我所知,这不是mongo的选项。我考虑过的一些选项:假数据库我听说过像fongo这样的内存数据库(这是Java的

node.js - Angular2 ExpressJs - 文件上传到服务器

Angular-2我正在尝试将文件上传到服务器。以下代码将文件上传到服务器,如何链接到我的mongodb文档?上传文件时,我想将其链接到特定文档。另外,如何在UI中提供链接以从服务器下载上传的文件?组件.ts@Component({selector:'aptcontent',template:`UploadDocs`,directives:[ROUTER_DIRECTIVES]})exportclassAptContentComponentimplementsOnInit{data:any;filesToUpload:Array;constructor(privateapartment

node.js - 用于在字段中创建未知数量项目的文档的 Mongoose 最佳实践

我左右看了看,写了一些演示代码,写了一些测试来实现一个学校管理系统。我想从更习惯于mongoose开发的人那里了解的是,如何以一种方式创建此模式的最佳实践才能从这个单一文档中添加尽可能多的地址和联系费用。我自己解决了,不知道是不是最优雅可行的方式,希望有经验的人给点意见​​。我应该为地址、电子邮件和电话号码创建单独的模型吗?我创建了这个模式。它仍然有一些伪代码,但对于给出一般的想法是好的。varstudent={name:String,surname:String,currentClass:{type:mongoose.Schema.Types.ObjectId,ref:"Classe

node.js - Mongoose 按分数索引

我正在尝试在mongoose中创建排行榜,但在通过分数递增来索引我的分数模式时遇到了问题。这是我的代码:db.once('open',functioncallback(){console.log('SuccessfullyconnectedtoMongoDB');varscoresSchema=newSchema({score:Number,user:String},{autoIndex:false});scoresSchema.index({user:1,score:-1});StatScore=mongoose.model('Score',scoresSchema);});它的输出

node.js - 在 mongodb 和 nodejs 中为架构违规设置自定义验证消息

我的架构如下:varmongoose=require('mongoose');varSchema=mongoose.Schema;varStudentSchema=newSchema({name:{type:String,required:[true,'namemustbenonempty']},family:{type:String,required:[true,'familymustbenonempty']},subjects:{type:[String],validate:[{validator:function(val){returnval.length>0;},msg:'Co

javascript - 如何使用 MongoDB native Node.js 驱动程序运行 db.killOp()?

我正在使用MongoDB原生Node.js驱动程序1.4.38。我已经得到了所有正在运行的操作:varmaxSecsRunning=2;db.collection('$cmd.sys.inprog').findOne(function(err,data){if(err){throwerr;}if(data&&data.inprog){data.inprog.forEach(function(op){console.log("Record",op);if(op.secs_running>maxSecsRunning&&op.op=="query"&&!op.ns.indexOf("loc