Tag: mongodb

mongoose在获取路线中删除并创build

我有一个与mongoose小问题,我正在做的是从在线rss提要,parsing它,并将其传递给一个数组,我喂养mongoose模型,所有这一切发生在获取路线,我想要的要完成的是首先从mongoose模型中删除所有的数据,然后用新的数据填充它,但是它总是一起删除数据,因为parsing器迭代几次,或者它不删除任何东西,数据只是不断增加的模型。 这是我的代码 'use strict'; const Promise = require('bluebird'); const request = require('request'); const FeedParser = require('feedparser'); const express = require('express'); const router = express.Router(); const xray = require('x-ray')(); var Post = require('../models/post'); var dataArray = []; router.get('/', function (req, res) { const fetch = (url) => { return new Promise((resolve, reject) => { if (!url) […]

dynamic创build多个文件nodejs

我想要下载数据库中的所有文件作为zip文件。 如果我只想下载元素,我可以很容易地设置它的头和内容types,然后可以发送它的缓冲区。 db.collection("resource").find({}).toArray(function(err, result) { res.setHeader('Content-disposition', 'attachment; filename=' + result[0].name); res.contentType(result[0].mimetype); res.send(result[0].data.buffer); } 现在我想创build一个文件夹,并将每个result元素添加到此文件夹然后发送它。 下面的代码只是返回第一个文件。 这是合理的,因为我立即发送缓冲区。 for(var i=0; i < result.length; i++){ res.setHeader('Content-disposition', 'attachment; filename=' + result[i].name); res.send(result[i].data.buffer); } 我想将它们添加到数组中。 for(var i=0; i < result.length; i++){ var obj = {name: result[i].name, buffer: result[i].data.buffer}; files.push(obj); } res.setHeader('Content-disposition', 'attachment; filename=' + "resource"); res.contentType('application/zip'); res.send(files); 这返回给我一个文本文件resource ,其中包括作为JSON格式的name和buffer 。 […]

是否有可能select查询select和他的索引数组中的元素?

有一个Schema: {model.js} var someSchema = new mongoose.Schema({ a : [Number], b : String, c : [Number], d : Number }); 我试图find()每个文件,并select只有一个元素从c,具有相同的索引和b元素。 这就是我所尝试的: {get.js} var some = require('model'); some.find() // find .limit(3) // limit for 3 docs (test part) // NEXT LINE IS NOT WORKING .select('a.0 b c.0 -d') // select {array: a and b, index:0}, […]

在我的HTML中使用节点function

我正在做一个网站,需要改变一个embedded的video,当一个button被点击。 我的html页面加载了一个js脚本,需要在数据库中调用一个被节点编码的函数。 整个事情是运行在一个mongoDB服务器与mongoose来支持我。 为了使事情更清楚一些代码: 我的数据库(只有相关的function): function database(){ db = mongoose.createConnection(url); songModel = db.model('Song',{id : Number , title : String, artist : String, genre : String, rating : Number, link : String }); //init freeid songModel.count({},function(err, c){ nextFreeId=c; }); }; database.prototype.getNextFreeId = function(){ return nextFreeId; }; database.prototype.getSongById=function(id2){ songModel.findOne({id : id2}, function(err,obj){ if (err) { console.log('Not Found, […]

不能将文件(logging)插入到mongodb中

我正在开发项目,我需要导入国家,州和城市从下面的代码。 我可以从json文件导入国家和州,但城市只能导入第一个文件(logging),而不是全部。 Route.js router .route('/api/user/loadcity') .get( function(req, res, next) { var fs = require("fs"); fs.readFile('/home/user7/Downloads/city.json', 'utf8', function (err,data) { data = JSON.parse(data); for(var i = 0; i < data.length; i++) { console.log(data[i].city_name); var newCity = new City({ id:data[i].id, country_id : data[i].country_id, state_id : data[i].state_id, city_name : data[i].city_name, is_active : data[i].is_active }); newCity.save(function (err) { if(err){ […]

如何在node.js中创build会话

在Node.js / Mongodb中,我想创build一个简单的会话,并将其提供给另一个页面,以便我可以知道用户是否已login。 我想知道他是否可以访问该页面,我该怎么做? 如何设置会话,以及如何获取值以检查是否必须redirect用户。 非常感谢!

通过mongoose访问数组元素

有了这个文件: { "_id" : 8, "updatedAt" : ISODate("2016-04-13T05:07:38.905Z"), "createdAt" : ISODate("2016-04-13T04:15:37.612Z"), "author" : "test@test.com", "urgency" : "slow", "state" : "pending", "comment" : "", "requests" : [ { "value" : 1, "product" : "Slethoxynal", "_id" : ObjectId("570dc7e91d15852f1c2ae66a") }, { "value" : 1, "product" : "Thyrploxynénol", "_id" : ObjectId("570dc7e91d15852f1c2ae66b") } ], "__v" : 0 } 我使用这个JavaScript函数: function […]

在mongodb中获取types的数组

有没有解决这个问题的方法? 假设我有db作为; { name: "Alex" id: 1 } { name: "Felix" id: 2 } db.collection.find({}, {name:1, id:0}).toArray() 回报为; result object name: Alex object name: Felix 我已经限制了字段只能获得一个数组的名字。 有没有办法做到这一点? 为什么这个查询以[object OBJECT]格式返回? 我的解决scheme是; 遍历result并将每个名称对象插入到某个数组中。 我正在寻找与此不同的东西。 也许是关于我写的查询?

更新数组中的embedded式文档 – Mongodb + Node Driver

我希望能够:查找具有特定id的文档,然后基于shortID在legacy数组中find文档,并更新与shortID匹配的embedded文档的sets数组。 显然,还没有点击我的东西。 我有以下结构: { "id" : "5706e5b5cbc61e5bf3a9f4e7", "legacy" : [ { "shortID" : "B1zHAllg", "timeStamp" : "Apr 16th 2016", "sets" : [ { "weight" : "7", "reps" : "7" }, { "weight" : "7", "reps" : "7" } ] }, { "shortID" : "HyUVCegx", "timeStamp" : "Apr 16th 2016", "sets" : [ { "weight" : […]

asynchronous系列nodejs中的asynchronousforeach

我正在处理节点asynchronous库 。 我无法按照我想要的顺序执行。 我不知道我要去哪里错了这里是代码..在评论中我已经定义了订单号..目前它的执行2,3,4,5,1顺序我想在1,2,3,4 ,5号 ….好心帮忙 function getAsExhibitors(req, res) { //getting all exhibitors against an event var exhibitors = []; var eac_app_names = []; async.series([function(callback){ models.EacExhibitorsExt.find({ deleted: false,userid: req.user._id}).sort({ modified: -1 }).exec(function(err, myExhibitors) { exhibitors = myExhibitors; callback(); }); },function(callback){ async.forEach(exhibitors,function(exhibitor,callback){ models.Eac.findById(exhibitor.eventid).exec(function(err,eac){ eac_app_names[exhibitors.indexOf(exhibitor)]=eac; console.log("—————–1————–"+eac_app_names); }); console.log("—————–2————–"+eac_app_names); callback(); },function(err) { console.log("—————–3————–"+eac_app_names); callback(); }); }],function(err) { //This […]