Tag: mongodb

find所有的文档,但如果有一些文档具有相同的价值获得最新的一个

我会尝试用样本数据来解释。 用户可以进行任意数量的评论,但是我只想要由评论者返回最新的评论。 { id : 1 name : "John", review : "only one review" dateCreated : 2017-02-23 02:35:11.420Z } { id : 3 name : "Sam" review : "second entered" dateCreated : 2017-02-23 02:41:42.300Z } { id : 2 name : "Sam", review : "fist enterd" dateCreated : 2017-02-23 02:36:32.150Z } .find()应该返回id为1和id 3的文档。因为只有一个是由John创build的,而id为3的是Sam创build的最后一个。 有没有这个问题? 我的实际项目更困难,因为不是name我有userId和anonId […]

无法在视图目录中查找“/ user / profile”

我正在尝试使用node.js,express.js和mongodb构build一个购物车。 我正在build立注册function。 我的问题是当我尝试访问本地主机:3000 /用户/configuration文件链接我得到这个错误信息: Failed to lookup view "/user/profile" in views directory "/Users/vynguyen/shopping-cart/views Error: Failed to lookup view "/user/profile" in views directory "/Users/vynguyen/shopping-cart/views" at EventEmitter.render (/Users/vynguyen/shopping-cart/node_modules/express/lib/application.js:579:17) at ServerResponse.render (/Users/vynguyen/shopping-cart/node_modules/express/lib/response.js:960:7) at /Users/vynguyen/shopping-cart/routes/index.js:34:6 at Layer.handle [as handle_request] (/Users/vynguyen/shopping-cart/node_modules/express/lib/router/layer.js:95:5) at next (/Users/vynguyen/shopping-cart/node_modules/express/lib/router/route.js:131:13) at Route.dispatch (/Users/vynguyen/shopping-cart/node_modules/express/lib/router/route.js:112:3) at Layer.handle [as handle_request] (/Users/vynguyen/shopping-cart/node_modules/express/lib/router/layer.js:95:5) at /Users/vynguyen/shopping-cart/node_modules/express/lib/router/index.js:277:22 at Function.process_params (/Users/vynguyen/shopping-cart/node_modules/express/lib/router/index.js:330:12) at next (/Users/vynguyen/shopping-cart/node_modules/express/lib/router/index.js:271:10) […]

如何把variables放入我的查询? (mongoose)

需要为我的用户添加用户ID,这将是我的collections项数+1。例如,如果我有100个用户,下一个用户的用户ID将是101。 User.count().exec(function (e, count) { console.log(count); // Count = 15, correct. newUser.userId = count + 1; // Ain't working… }); 那么如何将“count”variables添加到我的查询中? 或者是更先进的方式,让自动增量(主键)在mongoose?

Mongodb nodejs查询语法错误

我想要这样的查询: 此查询将在friendrequest集合中select一个文档,其中sender_id等于“id1”且receiver_id等于“id2”或者sender_id等于=“id2”AND receiver_id等于“id1” 那么任何人都可以帮助我build立这个查询? select * from friendrequest其中(sender_id =“id1”和receiver_id =“id2”)OR(receiver_id =“id1”和sender_id =“id2”)mySql 错误: friendRequests.findOne({$or:[{$and:[{sender_id:req.body._id,receiver_id:req.body._uid2}],$and:[{sender_id:req.body._uid2,receiver_id:req.body._id}]}

Mongoose自引用模式不为所有子文档创buildObjectId

我有一个在mongoose中有一个自引用字段的Schema,像这样: var mongoose = require('mongoose'); var CollectPointSchema = new mongoose.Schema({ name: {type: String}, collectPoints: [ this ] }); 当插入一个CollectPoint对象时: { "name": "Level 1" } 没关系,结果如预期: { "_id": "58b36c83b7134680367b2547", "name": "Level 1", "collectPoints": [] } 但是当我插入自引用的子文档时, { "name": "Level 1", "collectPoints": [{ "name": "Level 1.1" }] } 它给了我这个: { "_id": "58b36c83b7134680367b2547", "name": "Level 1", "collectPoints": [{ […]

MEAN Stack app – 发送后无法设置标题

我基本上是试图创build一个使用MEAN注册页面,我想检查数据库(Mongo使用Mongoose),如果用户和电子邮件已经存在,如果其中一个是真的,发送res.json失败。 如果用户名和电子邮件不在数据库中,请继续添加用户。 我收到一个错误“发送后无法设置标题”。 在节点控制台上,我试图找出原因。 一旦User.getUsername()在callback中返回一个用户(如果用户名传递存在于数据库中),不应该返回JSON并在那里结束请求? 为什么它继续到User.adduser()函数并尝试在那里设置标题呢? 任何帮助表示赞赏,谢谢。 router.post('/register', (req, res, next) =>{ let newUser = new User({ // Collect body info name: req.body.name, email: req.body.email, username: req.body.username, password: req.body.password }); // Check if username is available User.getUserByUsername(newUser.username, (err, user) => { if(err) throw err; if(user){ return res.json({success: false, msg: 'User already exists'}); // I want […]

带项目和filter的mongoose查询

我有查询: Model.aggregate([{ $lookup: { from: 'translations', localField: '_id', foreignField: 'item_id', as: 'translation' }, }, { $project: { "label": "$label", "items": "$items", "translation": { "$filter": { "input": "$translation", "as": "page", "cond": { "$eq": ["$$page.lang_key", lang] } } } } }]) 结果: [ { _id: 58b2ca5b9ac42bac7aaed48a, label: 'Main', items: [ [Object] ], translation: [ [Object] ] } […]

无法从MongoDB数据库获取数据的Web应用程序

我是使用MongoDB的新手。 目前,我正在制作一个需要一些数据存储的Web应用程序。 我在本地主机:3000上运行的Node.js上build立了一个HTTP服务器。 我还使用Vagrant和VirtualBox构build了一个虚拟开发环境。 我正在从PuTTy访问Mongo shell(如果这是相关的)。 在合并MongoDB之前,它正常工作,因为我在Node.js程序内存中存储数据。 这个networking应用程序是一个在线待办事项列表。 我得到的第一个错误是获取路线。 我已经插入Mongo数据库的“待办事项”列表不会出现在本地主机的网站上。 它似乎没有从数据库中获取数据。 我得到的第二个错误是邮政路线。 当我通过本地主机上的用户界面插入“待办事项”并刷新页面时,本地主机上的待办事项列表将更新为特定的待办事项(但不包括我插入数据库中的待办事项)。 但是,它似乎没有将其添加到数据库中,我仍然在控制台上得到这个错误: vagrant@precise32:~/app$ node server.js { description: 'descTest3', tags: [ 'tagTest3' ] } Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html 我不知道为什么我得到这个错误,因为我似乎没有使用任何承诺。 server.js var express = require("express"), http = require("http"), app = express(), mongoose = […]

MongoDBcallback问题的嵌套调用

我正试图在我一直在工作的API中放置一个嵌套的MongoDB调用。 API的目标是根据练习执行更新人员目标。 我现在所面临的问题是试图将锻炼事件变成主要function,以使我能够计算“完整性”。 我欢迎您就此问题提出的任何意见。 大家好, 我试图把一个嵌套的MongoDB调用放在我一直在做的API中。API的目标是根据运行执行更新一个人的目标。我现在的问题是试图把运动事件放到主函数中使我能够计算“完整性”。 我欢迎您就此问题提出的任何意见。 module.exports.generateGoal = function(request, response) { //User ID var user_id = new ObjectId(request.params.id); //Goal Search Goals.find({ user_id: user_id, active_goal: true }, function(err, goals) { if (err) { //Error: send error to user throw err } else { if (goals.length == 0) { //No goals, do nothing return response.json({ success: […]

如何在Mongodb(Mongoose)中获取html字段数据?

我想通过发送表单来更新MongoDB中的一些数据。 所以例如我有一个forms: <form action='/update' method='post'> <input type='text' name='username'> <input type='submit' value='send'> </form> 并有代码: router.post('/change', function (req, res) { User.findOneAndUpdate({_id: 1}, {$set:{name:"Garry"}}, {new: true}, function(err, doc){ if(err){ console.log("Something wrong when updating data!"); } console.log(doc); } ); 如何从我的“用户名”字段插入值,而不是“加里”? 我怎样才能在mongoose声明我的'usernamename'variables?