草庐IT

Node-red

全部标签

javascript - Node.JS 查询 MongoDB 返回 null

我是Node.js和MongoDB的新手,我正在试用。我制作了一个名为footIco的集合。当我在控制台中使用db.footIco.find()查询MongoDB时,它会返回所有数据。但是,当我从Node.js查询MongoDB时,它没有返回任何数据。我可以在MongoDB服务器控制台中看到连接。这是我的Node.js脚本;varMongoClient=require('mongodb').MongoClient;varassert=require('assert');varObjectId=require('mongodb').ObjectID;varurl='mongodb://l

node.js - 在 mongoose 中,model.save 是增量的原子还是我应该始终使用 $inc?

我需要在MongoDB和mongoose中增加记录的likes字段,但我有点“担心”这些操作的原子性,因为这应该是并发安全的:Post.findById(id,function(err,post){post.update({$inc:{likes:1}});});对比Post.findById(id,function(err,post){post.likes++;post.save()});它们是否提供相同的安全结果?想一想我什至必须减少记录的点赞数(例如,如果用户再次点击点赞按钮)Post.findById(id,function(err,post){post.update({$in

node.js - 如何从集合中检索所需字段的值并将其 ID 存储在另一个集合中

我正在使用Nodejs和mongodb。我有这个路线代码router.get('/taglist',function(req,res){vardb=req.db;varcollection=db.get('tagcollection');collection.findOne({},{},function(e,docs){res.render('taglist',{"taglist":docs});});});这是为了从数据库中获取所有标签列表并将响应呈现给taglist.jade如下所示-extendslayoutblockcontenth1.TagListuleachtag,iint

node.js - 如何使用 ref 在 mongodb - mongoose 中正确存储文档?

我正在尝试在我的用户-关注者数组中存储用户模型的引用:模型看起来像这样:User=require('../models/user.js');ObjectId=mongoose.Schema.Types.ObjectId;User=newSchema({followers:[{type:ObjectId,ref:'User'}],现在我试图在每次用户关注用户时存储这样的用户:User.findByIdAndUpdate({_id:myId},{$addToSet:{followers:user._id,但是,这只存储字符串而不是整个用户对象?应该是这样吗?如果是这样,那么为了获取其余信息

javascript - Node.js - 不是函数

我正在用Node.js编写登录。它曾经工作得很好,但现在我试图添加一个字段并且它停止工作,我不知道为什么。我正在使用Passport.js进行身份验证。奇怪的是它确实将用户添加到数据库中,但是它切换了字段。名称是密码等我得到的错误如下;C:\Users***\Documents\GitHub\Query\config\passport.js:33returndone(null,false,req.flash('signupMessage','Jeemailbestaatal.'));^TypeError:doneisnotafunctionatQuery.(C:\Users***\Do

node.js - MongoDB聚合和项目结果总数

我正在使用db.collection.aggregate()使用下面的查询。我得到的结果很好,其中投影字段正是下面指定的字段。我还想获得符合此条件的文档总数。db.collection.aggregate([{$match:{"age":{"$gte":20,"$lte":30}}},{$lookup:{from:"photos",localField:"post_id",foreignField:"post_id",as:"photos"}},{$project:{"title":1,"photos.path":1,"age":1,"city":1,"location":1,"pos

node.js - Mongoose 总是插入第一个文档并跳过预保存 Hook

代码检查数据库中是否存在文档(使用预保存Hook),如果不存在则将其插入。它工作正常,但不适用于第一个文档。它总是被插入。似乎第一个文档没有触发预保存Hook。Model=require('./model')varmodel=newModel();//Beforesaving,checkiftheproductexistsModel.schema.pre('save',function(next){varself=this;Model.findOne({apiProductId:self.apiProductId},function(err,product){if(!product){

node.js - 不使用 API REST MEAN + Mongoose 中的方法 "UPDATE"

exports.updateUsuarioByEmail=function(req,res){console.log('updateUsuarioByEmail');console.log("PARAMID"+req.params.email);returnUsuario.find({email:req.params.email},function(err,usuario){if(!usuario){res.statusCode=404;returnres.send({error:'Notfound'});}if(req.body.email!=null)usuario.email=r

node.js - 模型不是 postman 中的函数错误

当我尝试向数据库插入新帖子时,我在mongodb中进行基本的crud操作,我在postman中收到一条消息,因为测试不是函数。我的路由器功能如下。router.route('/createtests').post(function(req,res,next){varTest=newTest(req.body);postTest(Test,function(data){res.json({'message':'Thetestcreatedsucessfully'});});});varpostTest=function(test,cb){Test.save(function(err,da

node.js - 在 Nodejs 中以编程方式连接到 Mongodb Amazon EC2 实例

我正在制作一个NodeJS网络应用程序。我想使用Amazon的弹性beantalk部署该应用程序,并且我想使用MongoDB作为数据库。现在我对解决方案的理解是:在AmazonEC2实例上设置MongoDB实例(我已经这样做了)在server.js中以编程方式连接到此数据库以读取和写入数据库这个解决方案有意义吗?如果是这样,我如何以编程方式连接到EC2MongoDB实例?我找到了Node的官方MongoDB包:https://www.npmjs.com/package/mongodb但文档只提到连接到MongoDB的本地实例://ConnectionURLvarurl='mongodb