Tag: 数据库

Node.js + Oracle – 在每个请求之后保持连接打开或closures?

我有一个使用Node.js和连接到Oracle数据库的Web应用程序。 目前,我的Node和DB之间的架构使用一个连接,保持打开状态。 问题是一些查询需要很长时间才能返回,从而阻塞后续查询,直到第一次返回。 如果我在每个请求上打开一个新的连接,这不会发生,并且后续的查询将在第一个(长)之前返回。 问题是什么是最佳实践? 每个请求是否值得在callback时closures数据库的新连接,我是否应该优先考虑我知道要花费大量时间用自己的连接进行的查询,还是一个连接是正确的? 非常感谢您的想法。

喜欢在mongoDB

在这里我的问题:我想创build一个networking,允许用户上传post和喜欢他们。 我想我可以将每篇文章存储在一个名为“post”的集合中,而且我没有这个问题。 但我在哪里可以存储每个post与相关数据(时间,用户等)喜欢? 我不能这样做后文件,因为一个文件的最大大小是16MB,想象我将不得不logging每个post相关数据的数千喜欢我不能这样做。 我可以将每个post关联到一个集合,其中包括文档和每个文档是相似的。 但是,如果可能的话,我真的不想创造数百万和数百万的collections。 post文档示例: {_id: blabla, userfrom: {}, txt: "i am the post", time: {}, geo: {}, likes: {here i have to add as many likes as users clicks, and it can exceed 16MB}} 现在在'喜欢'我可以把一个集合的参考,但这是我不想做的。 我读了MongoDB的gridstore,但是我没有明白。 我可以使用它作为大小可以趋于无限的文件? 所以我可以添加尽可能多的logging,我想要的? 所以与网格商店我可以做一些事情: {_id: blabla, userfrom: {}, txt: "i am the post", time: {}, geo: {}, […]

在社交networking中的“喜欢”数据库devise(MongoDB)

我正在使用MongoDB构build一个照片/video共享社交networking。 社交networking有一个Feed,个人资料和一个追随者模型。 我基本上采用了类似的方法来为我的“社交饲料”devise这篇文章 。 具体来说,当用户发布故事时,我使用了采用桶式方法的扇出。 我的问题是当用户“喜欢”一个故事。 我目前也在使用写扇出的方式,基本上增加/减less每个用户的feed的故事“喜欢计数”。 我认为这可能是一个糟糕的devise,因为用户“喜欢”比他们发布更频繁。 用户可以通过喜欢和不喜欢stream行的post来快速饱和服务器。 你们在这里推荐什么devise模式? 我应该使用扇形阅读吗? 继续与后台工作人员一起使用扇出? 如果解决scheme是“后台工作人员”,您推荐使用什么方法为后台工作人员? 使用Node.js 任何帮助表示赞赏! 谢谢,亨利

Sequelize.js多次急切的加载

我有2个模型: User和Team 有多种types的用户(在这种情况下是指导者和版主),它们使用User模型()中的属性进行区分。 User和Team之间的关联如下: User.hasMany(models.Team, {as: 'Mentors', through: models.TeamMentor, foreignKey: 'mentorId'}); User.hasMany(models.Team, {as: 'Moderators', through: models.TeamModerator, foreignKey: 'moderatorId'}); Team.hasMany(models.User, {through: models.TeamMentor, foreignKey: 'teamId'}); Team.hasMany(models.User, {through: models.TeamModerator, foreignKey: 'teamId'}); 现在,我正在尝试为所有分配给团队的导师和版主分配团队的细节以及单独的对象。 我从文档中了解了许多到许多关系的getter和setter,但是我不知道如何使用这个方法,因为这里有两种不同的关联: 团队 – 导师(用户) 团队 – 主持人(用户) 在这种情况下如何正确查询团队的详细信息? PS: TeamMentor和TeamModerator是空模型来帮助多人连接

多个MongoDB查询不使用循环?

我试图找出是否可以使我的MongoDB查询(fron Node.js)更快,更高效。 基本上我有一个“玩家”arrays,每个玩家都有一个“player_id”属性。 我想迭代每个Player,并使用player_id在MongoDB数据库中查找有关Player的数据。 由于Node.js的asynchronous性质,我必须保证,当我向数据库发送查询时,我得到的数据对应于用来查询的player_id。 到目前为止,我有以下代码(我简化了)。 我最感兴趣的是如何在不使用for循环的情况下实现这一点。 谢谢。 var playersArray = new Array({"player_id":1234567}, {"player_id":9847621}, {"player_id":0946783}, {"player_id":8712890}); queryDataForPlayers(playersArray, function(data){ //Done – Each Player now has a "new_data_property" property }) function queryDataForPlayers(playersArray){ var newPlayersArray = new Array(); var counter = 0; for(var i=0; i<playersArray.length; i++) { retrievePlayerData(playersArray[i].player_id, playersArray[i], function(err,data) { newPlayersArray.push(data); if(++counter == playersArray.length) { callback(newPlayersArray); }//end […]

Node.js – 请求数据库和延迟

我有Node.js上的应用程序,由两个文件组成。 第一个文件包含构造if(..) { … } else { … }函数,第二个文件包含函数,其结果是if()中的参数并包含对数据库的请求。 例: File_1(部分) var args = require('./File_2'); if(args.test() && args.example()) { //action } else { //action } File_2(部分) function test() { mysql.query('SELECT * FROM `table` WHERE `name` = "test"', function(err, rows) { if(rows.length == 0) { return false; } else { return true; } } } function […]

重新启动服务器后,Redis数据丢失

我已经configurationRedis使用RDB持久性方法来保存数据,如果单次写入( save 1 1 ),但仍然重新启动后,我看到键值为零。

我需要一个数据库为我的nodejs应用程序?

我需要创build一个热图来显示世界上对应于IPv6地址的密度区域。 我可以通过parsing一个csv文件并过滤Ipv6地址和相关的经纬坐标来填充这个热图(密度)。 我需要一个数据库来存储这个过滤的信息? 或者我可以写我的应用程序(客户端),每次我去到index.html页面,客户端处理这个C​​SV文件,并填充热图? 此外,有一个警告,csv文件可以改变。 这不是说如果我使用数据库,我需要用新的CSV文件中的新数据重新填充数据库?

如何使sequelize.sync()省略一些模型?

我在我的DB(mysql)中使用表和视图,所以对于开发/testing环境,我想使用sync(),但它在视图上崩溃。 我可以以某种方式忽略这些模型?

Tile38靠近查询节点callback函数不起作用

我正在构build一个小型的GEO应用程序,它使用http://tile38.com/和https://www.npmjs.com/package/tile38节点模块。 一切工作正常,但我无法从节点模块的NEARBY查询结果。 它看起来像callback函数不工作,我花了很多时间,但找不到出路。 我想要的是从附近的查询得到的结果,并分配给一个variables。 这里是代码: var Tile38 = require('tile38'); var client = new Tile38({host: 'localhost', port: 9851, debug: true }); // set a simple lat/lng coordinate client.set('fleet', 'truck1', [33.5123, -112.2693]) // set with additional fields client.nearbyQuery('fleet').distance().point(33.5123, -112.2693, 6000).execute((err, results) => { console.log("########"); // this callback will be called multiple times if (err) { console.error("something went […]