Tag: nosql

不能更新Dynamo Db表,得到ValidationException

我需要通过仅使用分区键来更新我的Dynamo数据库表。 但我有validation的exeption。 我创build了一个3字段的表。 id(分区键) 名称(sorting键) 年龄 然后,我已经triyed更新年龄字段使用唯一ID(试图修改年龄30至40)这是我的代码 var AWS = require("aws-sdk"); AWS.config.update({ region: "us-east-1", }); var params = { TableName: 'test', Key: { id: '100' }, UpdateExpression: 'set #age = :age ', ConditionExpression: '#age = :testAge', ExpressionAttributeNames: { '#age': 'age' }, ExpressionAttributeValues: { ':age': '40', ':testAge': '30' } }; var docClient = new AWS.DynamoDB.DocumentClient(); docClient.update(params, […]

存储日志,nodeJS postgreSQL vs noSQL

我的node.js应用程序正在生成大量的文本日志(每个用户每天100个)。 我每天有10k个活跃用户,每天大约有10万个日志,供我的应用程序存储。 格式化如下: time | log_type_id | action_id | message | user_ip 无法归档。 大部分日志数据必须可用于显示给用户。 问题是什么是最快,最有效的磁盘空间和性能明智的方式来存储日志? 奖金问题什么是最好的sorting方式,分析所有这些数据?

Backbone.js,mongodb和获取相关对象 – 客户端或服务器端?

我正在使用mongodb,node.js和backbone.js来构build一个应用程序,作为我的学习体验。 我很想知道从REST API中获取相关对象的最佳做法是什么。 比方说,我们有“发布”对象和“用户”对象,post具有链接到用户的“userId”属性。 你应该: 在客户端获取一个post对象。 检查post的“userId”属性,然后分别获取该用户。 从服务器端代码来看,这似乎很好,但如果事情变得更复杂,最终可能会产生大量的请求。 获取一个post对象,并让服务器“build立连接”,并在相同的请求中给你相关的用户对象。 有没有人有一些他们可以分享的经验? 谢谢

哪个nosql数据库适合?

我期待build立一种社交networking。 现在这不是Facebook的规模,但我觉得它可以有一个大的跟随。 我想要构build具有可扩展性的系统。 它也需要能够处理大量的数据和关系。 我希望有人可以给我一些方向的数据库使用。 我看过很多文章,但通常都是一年多,数据库变化很快,所以我不知道人们说的东西是否仍然是真的。 我真的很喜欢riak数据库,因为它很容易扩展,我喜欢所有节点都可以读写的事实。 我的担心之一是数据将会有的关系。 但是,我相信riak中的联系可以解决这个问题。 但是在使用链接会降低性能。 我只是希望有人能给我一些经验和数据库目前的方向。

如何构buildMongo数据库的REST API

我正在用Mongo编写一个REST API,并被整个文档build模策略所吸引。 这似乎是一个非常分歧的问题,人们说先反规范化,然后正常化,反之亦然。 我很想看看REST API的资源结构如何影响基于文档的数据库的结构。 对于REST api资源结构来说,似乎对所有东西(即位置,租户,交易)都有单独的集合是有意义的,尽pipe这似乎是对付Mongo的一个好处。 我的问题是如何在NoSQL(特别是Mongo)文档数据库中对REST api的资源进行build模。

MongoDB + NodeJS Web应用程序的初始数据库结构/数据

我正在用MongoDB作为后端开发Node.js中的Web应用程序。 我想知道的是,什么是普遍接受的程序(如果存在的话),用于创build初始集合并用初始数据填充它们,例如名称或预定义常量列表的白名单。 从我看到的情况来看,MongoDB会隐式创build集合,任何时候数据都被插入到数据库中,而插入的集合还不存在。 让这些隐式插入负责创build集合是否标准,或者使用MongoDB的人员是否具有构build主结构并插入所需的初始数据的脚本设置? (例如,当使用MySQL时,我会有一个.sql脚本,我可以从头开始运行以转储和重build数据库)。 感谢您的任何帮助。 MHY

用不同的值更新mongoDB中的许多文档

我试图用两个不同的值更新mongoDB中的两个文档。 我用两个不同的callback做了它,但是只有一个请求可以做到吗? 我的解决scheme mongo.financeCollection.update( { 'reference': 10 }, { $push: { history: history1 } }, function (err){ if (err){ callback (err); } else { mongo.financeCollection.update( { 'reference': 20 }, { $push: { history: history2 } }, function (err){ if (err){ callback(err); } else { callback(null); } }); } }); 对不起,如果这是一个愚蠢的问题,但我只是想优化我的代码!

Cassandra连接最佳实践

我使用Cassandra的Node JS,我不知道什么是最好的交互方式。 我有多个与Cassandra交互的模块,我想知道它是否更好 为所有模块保持一个连接 为每个模块设置一个连接,或者如果最好的话; 每次有请求连接到Cassandra。 这个Web应用程序使用Cassandra来处理大部分请求。

使用Redis + Node.js的数据库体系结构

继其他一些SO问题之后,我正在开发一个网站监控应用程序作为一个宠物项目,目的是更多地了解Node.js + Redis。 我计划的是让用户添加url,并将其添加到Redis SET 。 每一分钟,我都会得到SET结果,做一个HTTP Get请求并打印响应。 这似乎工作正常,但是,我有几个问题: 鉴于Redis SET不允许重复键(这将使我无法再请求到同一个URL),但是如何控制用户从他的帐户中删除URL但其他用户具有相同的URL? 我可以在URL中使用INCR值吗?我知道有多less用户在他们的帐户中有URL? 鉴于我每分钟都会做一个HTTP请求,而且我想使用Redis来保存结果(响应时间,上/下等), 那么在Redis中保存所有数据的最佳方式是什么分钟)? 我应该将每个响应保存在一个独特的Redis密钥中吗? 为了向用户实时显示结果,查询结果并实时parsing结果的最佳方法是什么? 谢谢您的帮助。

是否有可能使用node.js和noSQL数据库做事务处理?

我不是在谈论真钱交易 我正在开发的这个项目是一个玩家互相交换东西的游戏。 这基本上是一个交易过程,玩家A给了玩家B 10粒去交换30头牛,你明白了。 但是因为它是互动的,并且有很多玩家同时在聊天室般的环境中进行交易,所以我想知道是否有可能用node.js做这样的事情,但是我看到了问题。 我来自数据库背景,处理事务以及rollback和commit的性质对于维护数据库的健康状态是必要的。 但是,如果我们谈论的是node.js和mongoDB (或者其他任何的noSQL DB),那肯定是一个完全不同的思路,但我不明白它是如何处理交易的,因为只有两方应该参与而不诉诸某种forms的locking,但肯定不是什么node 。 我还没有find任何东西,但是这并不令我感到意外,因为node.js是如此新颖。 更新我知道一个交易的机制 – 特别是银行风格的交易,但这不是一回事。 我可能没有说清楚,但问题是,玩家B正在向买家群体出售东西。 这意味着虽然玩家A在客户端发起购买指令,但是也可能在同一时间玩家CD或E也点击购买相同的牛。 现在在正常的交易中,预计至less第一个获得logging级别表的人至less阻止其他方在那个时间点进行操作。 然而,使用节点的性质,特别是其速度,并发处理和显示实时更新数据库的使用意味着我可以很容易想象,最慢的人(我们正在说毫秒)获胜。 例如,玩家A在玩家C的同时启动购买。玩家交易完成,并且向玩家B付钱,并且在数据库上将玩家A分配给玩家A. 一毫秒后牛被分配给玩家C. 我希望能更好地解释这个问题。