草庐IT

Node-red

全部标签

node.js - MongoDb $addFields 和 $match

在我的mongodb查询中,我使用$addFields添加ID字段,该字段连接了其他三个字段。我的问题是,如果我将新添加的字段与我要查询的值匹配,我将得不到任何结果。对于其他领域,它们工作得很好。orderofaggregationwhatisinaggregationdata=awaitmodel.aggregate([{$project:{projectName:1,price:1,'document':'$$ROOT'}},{$addFields:{'document.id':{$concat:['$document.propertyId.prefix','$document.p

node.js - Node Promise拒绝不进入catch

我有一个在mongoDB上调用findByIdAndRemove的方法。万一我找不到ID,因此无法从数据库中删除它,我想抛出一个错误。删除仪表板功能:deleteDashboard=(id)=>{returnDashboard.findByIdAndRemove(id).exec((err,dashboard)=>{if(err)returnerrorHandler.handle('dashboardService',err);if(dashboard===null)returnPromise.reject({status:404,message:'notfound'});return

node.js - 一个项目中的 Web API 和 Web 应用程序与单独的项目

我对服务器、网络API和网络应用程序的概念完全陌生。我有一个项目,我需要设计一个允许客户端修改数据库的WebAPI(通过API对客户端隐藏)。还有一个具有某些功能的网络应用程序。Web应用程序还必须与数据库交互。所以我的问题是,我应该在同一个项目还是两个不同的项目中开发WebAPI(服务器)和Web应用程序?出于学习目的,我选择使用均值堆栈来实现系统。Mean代表MongoDB、ExpressJS、Angular和NodeJS。由于Mean堆栈包含开发API和Web应用程序的技术,我应该在一个项目中开发所有代码并将其部署在我的服务器中,还是将WebAPI和Web应用程序分成两个项目?如

node.js - Express JS 按 ID 显示数据

我使用的mongodb集合结构如下:聊天机器人合集{"_id":ObjectId("5a2f8edf84b906480af0d121"),"botname":"WelcomeChat","description":"WelcomeChat","status":"Inactive"}路由.jsapp.get('/cpanel/chat-bot/:id',function(req,res){if(req.session.user==null){res.redirect('/cpanel/login');}else{CB.getAllRecords().then(results=>{res.

node.js - mongodb nodejs db.collection 不是函数

这是我的FollowerModel类(在ES6中)代表我的MongoDB的follower集合importmongofrom'mongodb';classFollowerModel{constructor(db,logger){this._db=db;this._logger=logger;}asynccreate(data){try{data._id=mongo.ObjectID().toString();returnawaitthis._db.collection('follower').insertOne(data);}catch(error){returnPromise.rej

node.js - 匹配两个集合并在找不到匹配项时运行异步代码的最有效方法

我有两个集合,一个包含我的静态项目,另一个包含该项目的反向地理编码结果。它们由id属性匹配。我正在编写一个脚本,用于填充缺少项目的反向地理编码集合。这是我当前的解决方案,它非常慢,但确实如此:获取静态项的总数从静态项目集合创建读取流对来自读取流的每个项目使用反向地理编码集合中的findone如果项目存在,将计数器加1并忽略它如果item不存在,则从API中获取它,将其保存到集合中并将计数器加1当counter等于totalcount时,表示所有项目都已获取,因此解析函数functionfetchMissingData(){returnnewPromise((resolve,reject

node.js - 如何删除 express js 服务器中超过 24 小时的 Mongoose 文档?

我正在编写一个使用ExpressJS服务器和mongoose来处理MongoDB的应用程序。我将从外部传感器接收一些测量值,并将它们存储在数据库中。我将仅使用过去24小时的测量值。有没有办法以某种方式自动从Mongo中删除超过24小时的文档?每个测量文档都有一个名为createdAt的字段,其中包含创建它的确切日期。谢谢! 最佳答案 您可以在日期字段上使用生存时间(TTL)索引,例如createdOn或addedOn在您的集合中使用过期秒数,您插入的每个文档都应该有此字段包含当前系统时间newDate()文件过期秒后会在后台自动删除

javascript - 如何在 MongoDB (Mongoose) 中更新和更新文档。 Node JS

我有一个使用GET请求从服务器获取数据的服务。我每10秒重复一次此请求,并在每次请求后将这些数据保存到我的数据库中。我的代码附在下面。但是我需要过滤从服务器收到的新数据,以免在数据库中重复数据。我读到我需要使用upset:true在我的数据库中进行更新,但我想我做错了什么。你能帮我完成这个任务吗?app.js代码:constTenders=require('./libs/mongoose');constrequest=require('request');leturl=`http://public.api.openprocurement.org/api/2.4/tenders?offs

node.js - Mongoose :如何插入嵌套数组?

这个问题在这里已经有了答案:UpdatingaNestedArraywithMongoDB(2个答案)关闭3年前。我是NoSQL世界的新手。这是我的Mongoose架构的屏幕截图。我需要在vehicles数组中插入、更新和删除文档。到目前为止我尝试了什么:添加:(工作)Companies.findOne({'mobile':givenMobileNumber,'VehicleGroups.vehicle_group_id':vehicleGroupId},(err,res)=>{if(err||res==null){callback(err,res);}else{varlen=res.

node.js - 使用时间比较将数据插入mongodb

假设我在3台不同的服务器上运行此代码,并且每台服务器都使用一个数据库。setInterval(function(){if(userArray){varreport=mongoose.connection.db.collection('report');report.insert({datenow:newDate(),userlist:userArray},function(err,doc){if(err)throwerr;});}},600000);因此,这段代码在每台服务器上每10分钟运行一次,但我只希望其中一台将数据插入数据库。由于数据相同,因此它被插入3次。如何检查数据是否已被任