我有一个离线运行的现有Web应用程序(使用HTML5缓存清单).
我将数据存储在localStorage中.我将达到localStorage的5Mb限制.我可以将CouchDB用作本地数据库,有效地用CouchDB实现替换localStorage吗?
我不想在任何服务器上安装CouchDB,我只想利用客户端存储功能来替换我的localStorage实现.
是否像下载相关的couchdb.js文件和更改我的客户端持久性代码一样简单?
谢谢
最新的App Engine SDK(1.2.1)具有API调用,用于根据用户帐户的电子邮件地址计算用户帐户的ID.(即使用户稍后更改了地址,ID仍保持不变.)有关信息的唯一,不透明用户ID,请参阅此问题.但是,我有这个API调用的问题.
user_id()适用于登录用户(即从users.get_current_user),但它返回None由users.User()构造函数创建的对象.**什么给出?
例如,使用优秀的App Engine控制台,此代码不起作用.
>>> import google.appengine.api.users
>>> me = google.appengine.api.users.get_current_user()
>>> me
users.User(email='jason.h.smith@gmail.com',_user_id='105261964646342707921')
>>> me.user_id()
'105261964646342707921'
>>> somebody = google.appengine.api.users.User('someone@gmail.com')
>>> somebody
users.User(email='someone@gmail.com')
>>>somebody.user_id()
>>> type(somebody.user_id())
<type 'NoneType'>
Run Code Online (Sandbox Code Playgroud)
我想要一种简单的方法将电子邮件地址转换为用户ID. 我怎样才能提前从Google强制提供此ID; 或者如果不可能,为什么不呢?
感谢Nick Johnson的回答.以下是他的解决方案:
>>> from google.appengine.ext import db
>>> from google.appengine.api import users
>>> class User(db.Model):
... user = db.UserProperty(required=True)
...
>>> def email_to_userid(address):
... """Return a stable user_id string based …Run Code Online (Sandbox Code Playgroud) 引用http://www.mongodb.org/display/DOCS/MapReduce#MapReduce-Parallelism
截至目前,单个mongod进程上的MapReduce作业是单线程的.这是由于当前JavaScript引擎的设计限制.我们正在研究解决此问题的替代方法,但是现在如果要并行化MapReduce作业,则需要使用分片或在代码中进行聚合客户端.
没有并行性,与更简单或更传统的查询和数据聚合方法相比,MapReduce有哪些好处?
为避免混淆:问题不是"面向文档的DB比传统关系数据库有什么好处"
在couchdb网站 - >技术概述 - >安全和验证 - http://couchdb.apache.org/docs/overview.html - 它写道(在读者访问部分)"为了保护文档内容,CouchDB文档可以有一个读者这是一个允许读取文档的读者名称的可选列表.当使用读者列表时,受保护的文档只能由列出的用户查看." 我搜索了如何使用它,但我一无所获.那么实际使用它是否如何?
谢谢.
- 穆斯塔法
我对NoSQL数据库比较陌生,我不得不为监控工具评估不同的NoSQL-Solutions.
情况如下:一个数据只有大约100字节,但实际上有很多.在一天中,我们获得了大约1500万条记录...所以我目前正在测试9亿条记录(大约15GB作为SQL插入脚本)
我的问题是:Couchdb是否符合我的需求?我需要做范围查询(在创建记录的日期)并根据存储在数据中的"二级索引"定义的组总结一些列.)我知道MapReduce可能是计算它的最佳解决方案,但是CouchDB的JavaScript能够在可接受的时间内完成吗?
我已经尝试过MongoDB,但是MapReduce真的很差,做得很糟糕......我还读到了HBase和Cassandra.但也许CouchDB也是一个很好的可能性
我希望我能给你所有需要的信息......谢谢你的帮助!
安迪
简短版本:在Web开发人员和Web开发人员的最终用户使用的所有浏览器中,最简洁,最易维护的技术是什么,用于一致的演示和AJAX功能?
长版:我写了一个针对其他Web开发人员的Web应用程序.我希望我的应用能够在演示和AJAX行为中支持主要的Web浏览器(以及Google Chrome).
我开始使用Firefox/Firebug,然后在IE 6和7下为一致的样式添加条件注释.接下来,令我惊讶的是,我发现jQuery在IE中的行为并不相同; 所以我改变了我的Javascript,使用条件和不太纯粹的jQuery 在FF和IE上可移植.
今天,我开始在Webkit和Google Chrome上进行测试,发现不仅样式与FF和IE都不一致,而且Javascript根本没有执行,可能是由于语法或解析错误.我期待一些CSS工作,但现在我有更多的Javascript调试要做!在这一点上,我想在为所有情况编写成堆的特殊情况之前退一步思考.
我不是在寻找灵丹妙药,只是为了让事情尽可能易于理解和维护.如果没有服务器端智能,我更喜欢它; 但是,如果有一个优点,例如,检查用户代理然后将不同的文件返回到不同的浏览器,那么如果Web应用程序的总体可理解性和可维护性较低,那就没问题了.非常感谢你们!
我需要一个新的临时目录来在shell脚本中做一些工作.当工作完成时(或者如果我中途停止工作),我希望脚本更改回旧的工作目录并清除临时工作目录.在Ruby中,它可能如下所示:
require 'tmpdir'
Dir.mktmpdir 'my_build' do |temp_dir|
puts "Temporary workspace is #{temp_dir}"
do_some_stuff(temp_dir)
end
puts "Temporary directory already deleted"
Run Code Online (Sandbox Code Playgroud)
在Bash脚本中,最好的帮助是什么呢?
这是我目前的实施.有什么想法或建议吗?
here=$( pwd )
tdir=$( mktemp -d )
trap 'return_here' INT TERM EXIT
return_here () {
cd "$here"
[ -d "$tdir" ] && rm -rf "$tdir"
}
do_stuff # This may succeed, fail, change dir, or I may ^C it.
return_here
Run Code Online (Sandbox Code Playgroud) 来自http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views
couchdb reduce函数定义为
Run Code Online (Sandbox Code Playgroud)function (key, values, rereduce) { return sum(values); }
我无法理解何时/为什么键数组将包含不同的键值.如果键数组确实包含不同的键值,我将如何处理它?
例如,假设我的数据库包含表单帐户之间的移动.
Run Code Online (Sandbox Code Playgroud){"amount":100, "CreditAccount":"account_number", "DebitAccount":"account_number"}
我想要一个提供帐户余额的视图.
我的地图功能有:
Run Code Online (Sandbox Code Playgroud)emit( doc.CreditAccount, doc.amount ) emit( doc.DebitAccount, -doc.amount )
我的reduce函数有:
回报总和(值);
我似乎得到了预期的结果,但是我无法将此与我的reduce函数获得不同键值的可能性相协调.
我的reduce函数是否应该首先对键值进行分组?在那种情况下我会返回什么样的结果?
使用更新处理程序时修订版本的可能性有多大?在编写强大的更新函数时,我是否应该关注冲突处理代码?
如文档更新处理程序中所述,CouchDB 0.10及更高版本允许按需服务器端文档修改.
更新处理程序可以处理非JSON格式; 但其他主要特征是:
我不清楚第三点.在本地执行,更新处理程序运行速度更快,延迟更低.但在争用率较高的情况下,这并不能保证成功更新.或者更新处理程序是否保证成功更新?
在我的数据库设计中使用高级冗余非规范化数据来提高性能.我经常会存储通常需要加入或计算的数据.例如,如果我有一个User表和一个Task表,我会在每个Task记录中冗余地存储Username和UserDisplayName.另一个例子是存储聚合,例如将TaskCount存储在User表中.
这非常适合性能,因为应用程序具有比插入,更新或删除操作更多的读取,并且因为某些值(如用户名)很少更改.然而,最大的缺点是必须通过应用程序代码或触发器强制执行完整性.更新可能会非常麻烦.
我的问题是这可以在SQL Server 2005/2010中自动完成...也许通过持久/永久视图.有人会推荐另一种可能的解决方案或技术 我听说基于文档的数据库(如CouchDB和MongoDB)可以更有效地处理非规范化数据.
couchdb ×5
bash ×1
css ×1
email ×1
erlang ×1
mapreduce ×1
mongodb ×1
nosql ×1
offlineapps ×1
portability ×1
pouchdb ×1
shell ×1
sql-server ×1