Articles of mongodb

将ISOdate转换为yyyy-mm-dd格式

鉴于收集(#name:用户)结构: { "_id" : ObjectId("57653dcc533304a40ac504fc"), "username" : "XYZ", "followers" : [ { "count" : 31, "ts" : ISODate("2016-06-17T18:30:00.996Z") }, { "count" : 31, "ts" : ISODate("2016-06-18T18:30:00.288Z") } ] } 我想根据用户名字段来查询这个集合,ts以'yyyy-mm-dd'格式返回。 预期产出: { "_id" : ObjectId("57653dcc533304a40ac504fc"), "username" : "XYZ", "followers" : [ { "count" : 31, "date" : "2016-06-17" }, { "count" : 31, "date" : […]

Javascript和Mongoose for-loop在执行.find之前完成

我和我的伴侣需要获得每部电影的平均评分。 电影和评分是我们的MongoDB数据库的两个独立的集合。 所以,首先我们需要得到所有的电影。 之后,我们仍然需要的是在返回的电影列表的长度内循环遍历一个for循环。 在每一次迭代中,我们对当前在for循环的索引上的电影的Rating.find进行tt_number 。 在这一点上,它应该计算所有电影评分的平均值,并将结果存储在stringJSON中。 这是为每部电影完成的。 但是,我在这里包含的代码并没有这样做。 相反,for循环首先完成,然后它执行Rating.find三次,除了每次最后迭代的电影的tt_number 。 var express = require('express'); var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/Notflix', {useMongoClient: true}); var Movie = require('../model/movies.js'); var Rating = require('../model/ratings.js'); var jwt = require('jsonwebtoken'); var router = express.Router(); router.get('/', function (req, res) { var jsonString = '{"The average ratings":[]}'; var obj = JSON.parse(jsonString); var moviett_number; […]

更新方法与nodejs和mongodb

所以我试图更新我的项目中的一个事件,到目前为止我有点工作,我可以看到input,我在cmdinput,但数据不存储在MongoDB中。 一旦我按“提交”button,我被redirect到一个页面,说“找不到” 这是我的更新事件页面的代码 <div class = "row"> <div class="col-md-4 col-md-offset-4"> <h1> Update Event</h1> {{#if hasErrors}} <div class=alert alert-danger"> {{# each messages}} <p>{{this}}</p> {{/each}} </div> {{/if}} <form action=/user/updateEvents/{{this._id}} method="post"> <div class="form-group"> <label for="eventName">Event Name</label> <input type="text" id="eventName" name="eventName" class="form-control"> </div> <div class="form-group"> <label for="eventDate">Event Date</label> <input type="text" id="eventDate" name="eventDate" class="form-control"> </div> <div> <label for="eventPlace">Place of Event</label> […]

如何从textarea ejs文件获取数据库的数组?

我有一个textarea用户将放置5个或更多的电话号码或电子邮件。 我需要将这个textarea的信息保存到数据库(我使用Mongoskin)作为一个数组。 所以它必须是一个包含5个不同项目的数组。 所以这是我需要添加到数据库。 var phones = ["1number","2number","3number","4number","5number"]; 当用户按下逗号或分号或开始换行时,表示其中一个数字已完成,因此必须将其视为数组项目之一。 我所做的是,我从textarea得到的值,但它是只有1个数组项发送到数据库。 var whatidonotneed = ["1number2number1number2number1number"]; 我不需要的是只有一个项目的数组,而我需要5个独立的数组文件。 所以我将能够操作它们。 这是我在我的EJS文件中的代码: <div style="text-align: center;"> <form action="/emailsid" method="POST"> <textarea placeholder="Type your Emails Here" name="users" rows="6" cols="60"> </textarea> <button>Submit</button> </form> 并在我的app.js文件中: app.post("/emailsid", function(req,res){ db.collection('emails').insert({emails: [req.body.users]}, function(err,result) { if(err){ console.log(err); } else{ console.log(result); res.render("emailsid", {result: result}); } }); }); 我只是不明白如何使这些数字是单个数组项,以及如何说textarea,以便它明白,逗号或分号意味着它是其他数组项目之一。 因为我得到的只是一个数组项,其中包含所有的信息。

应用程序无法连接到DigitalOcean液滴上的mongodb

从terminal,应用程序启动并连接到MongoDB,但是当我试图访问它的液滴的IP地址(与正确的端口),我得到一个错误: MongoError: not authorized on cmf to execute command ( cmf是dbname)。 我遵循这里的安装和设置说明,创build一个用户,然后添加这里描述的rootangular色。 这是为pipe理数据库。 当login到Mongo shell时,我可以通过db.status()访问数据,当使用admin db时,我可以运行show users并查看用户。 我很困惑我是否缺lesscmf数据库的configuration。 当使用cmf数据库时,当我运行show users ,没有任何返回。 由于不明原因,应用程序无法连接到mongodb。 我现在对这里的去向感到困惑。 如果有人能指出我的方向正确,我将不胜感激。

即使MongoStore使用connect-mongo,Express会话也不会持久

当我重新启动我的服务器,我的会话结束,我注销。 这不会在常规页面刷新上发生。 我正在使用connect-mongo来解决这个问题: var session = require('express-session'); const MongoStore = require('connect-mongo')(session); 以下是我用来存储会话的代码,重用了一个名为thisDb的现有Mongo连接: app.use(session({ secret: secretHash, saveUninitialized: true, resave: true, secure: false, store: new MongoStore({ db: thisDb }) })); 在成功login期间: var day = 60000*60*24; req.session.expires = new Date(Date.now() + (30*day)); req.session.cookie.maxAge = (30*day); 在我的Mongo shell中,我可以validation在login时是否创build了新的会话: db.sessions.find() {"cookie":{"originalMaxAge":2592000000,"expires":"2017-11-17T20:36:12.777Z","httpOnly":true,"path":"/"},"user":{"newNotifications":false,"username":"max","admin":"true","moderator":"true"},"expires":"2017-11-17T20:36:10.556Z"}

npm start命令不起作用,并显示mongoose的弃用函数错误

我正在创build一个express和有angular项目。 我会告诉你的步骤,所以你可以看到,如果问题是一个缺less的命令或否: 我开始在全球安装express: npm install -g express 然后我创build了我的快速项目: express –view=hbs project_name 我安装了依赖关系: npm install 我安装了所有angular4需要的依赖关系: npm install –save @angular/cli@latest npm install –save @angular/core @angular/common @angular/http @angular/router @angular/compiler @angular/compiler-cli @angular/platform-browser @angular/animations @angular/platform-server … 我安装了mongodb和mongoose: npm install –save mongoose 现在,我试图运行命令npm start ,并且出现以下错误: 0信息它的工作,如果它结束与确定1详细cli ['C:\ Program Files \ nodejs \ node.exe',1详细cli 'C:\ Users \ pc \ AppData \ […]

不能在html scripttag中将EJSvariables推入数组中?

我正在试图build立一个与OpenLayers叠加使用一些testing坐标的数组。 这是代码: var parada = []; for(var i = 0; i < <%- coords.length%>; i++){ //First loop to fill the array var arr = [<%- coords[i].lon %>, <%- coords[i].lat %>]; //THIS IS THE ERROR LINE! … says the console… parada.push(arr); } var overlays = []; for (i = 0; i < parada.lenght; i++) { //Second […]

MongoDB查询优化search文本

我有一个NodeJS开发的应用程序,它作为一个REST API使用,并从MongoDB中使用数据 在MongoDB中,我有一个名为“ftp”的集合,拥有超过1000万个具有以下结构的文档 { "_id" : ObjectId("59e7c66911506bd1725cf145"), "ip" : "72.32.177.76", "timestamp" : "2017-10-16T02:30:26-04:00", "data" : { "banner" : "220-FileZilla Server version 0.9.41 beta\r\n" } } “data.banner”字段是一个hased索引 从NoodeJs我做一个聚合查询,使用正则expression式筛选一个文本string,组和计算结果。 function getData(timeInit, table, textSearch, res) { MongoClient.connect(url, function (err, db) { if (err) throw err; db.collection(table).aggregate([ { $match: { 'data.banner': $regex:textSearch} }, { $group: { _id: '$data.banner', num: […]

mongoose寻找function,search不返回所需的结果

我有一个Mongodb中的用户列表,需要根据如下图所示的filter进行search: 只有性别是强制性的,用户可能有或没有其他细节 User.find({ "gender": userEntry.gender, "dob": { $gte: convert.getDobFromAge(userEntry.ageHigherLimit), $lte: convert.getDobFromAge(userEntry.ageLowerLimit), $exist: false }, "details.chest": { $gte: userEntry.chestLowerLimit, $lte: userEntry.chestHigherLimit, $exist: false }, "details.waist": { $gte: userEntry.waistLowerLimit, $lte: userEntry.waistHigherLimit, $exist: false }, "details.height": { $gte: userEntry.heightLowerLimit, $lte: userEntry.heightHigherLimit, $exist: false }, "details.weight": { $gte: userEntry.weightLowerLimit, $lte: userEntry.weightHigherLimit, $exist: false } }, function (err, users) { […]