我正在读关于mongodb的文章.来到这个部分http://www.mongodb.org/display/DOCS/Tutorial它说 -
> var cursor = db.things.find();
> printjson(cursor[4]);
{ "_id" : ObjectId("4c220a42f3924d31102bd858"), "x" : 4, "j" : 3 }
Run Code Online (Sandbox Code Playgroud)
"当以这种方式使用游标时,请注意所有访问过的最高值(上面的光标[4])都会同时加载到RAM中.这对于大型结果集来说是不合适的,因为你的内存不足.应该用作任何返回大量元素的查询的迭代器."
如何使用游标作为迭代器与查询?感谢您的帮助
如何选择PyMongo只有独特的记录?
>>> db.houses.find({"street":{"$regex": "Fl", "$options":"i"}}).count()
107
>>> for item in db.houses.find({"street":{"$regex": "Fl", "$options":"i"}}):
... print item["street"]
...
Flatbush Avenue
Flatbush Avenue
Flatbush Avenue
Flatlands Avenue
Flatlands Avenue
Flatlands Avenue
Flatlands Avenue
Flatlands Avenue
Flushing Avenue
Flushing Avenue
...more
Run Code Online (Sandbox Code Playgroud)
如何在回复查询时仅获取"街道"的唯一记录?也就是说,为避免重复记录:
Flatbush Avenue
Flatlands Avenue
Flushing Avenue
Run Code Online (Sandbox Code Playgroud) 我是Neo4j的新手,并不能完全理解为什么Neo4j必须比高效的SQL查询更快.是因为数据结构还是底层查询实现?我真的很感激,如果有人可以帮我解决这个问题.
我和我的初创应用公司正在开发一款基于回合制的多人iPhone应用程序.可以说,我们都没有任何数据库或服务器知识.虽然,我们愿意学习.
游戏的流程类似于以下游戏:WordFeud,WordsWithFriends,Rumble等.
让我开始在网上进行大量搜索得到我们:
我们决定使用CouchDB作为存储用户,游戏会话和其他内容的信息的工具.CouchDB是一个开源的noSQL数据库系统.原因是我们已经被教导,它应该支持很多同意的用户.此外,它可以扩展 - 当然,我们希望变得更大.
我们的CouchDB托管在IrisCouch上.IrisCouch是一个"云端"托管服务,专为运行CouchDb而设计.
因此,我们已经启动并运行了CouchDB服务器,并且我们了解了如何从服务器查询数据的基础知识.
我们现在最大的困惑是,我们应该如何根据最佳实践建立系统.现在我们正处于能够接收数据并将数据提交给服务器的位置.
我们的游戏应该与Facebook集成,以便用户可以通过我们的应用程序或通过Facebook注册.之后,他们可以与随机匹配的对手一起玩,或与朋友一起玩.比赛开始后,一名运动员将获得一组问题,在他回答之后,应该通过推送通知通知另一名运动员轮到他们了.经过几轮游戏结束.
此时,我们认为这可能是应用程序流程的最佳解决方案:
再一次,正如您所看到的,我们在如何真正做到这一点时处于黑暗中,但这是一般性的想法.
所以,我的问题如下:
最好直接从iPhone应用程序或通过Web服务查询数据吗?
设置数据库的最佳方法是什么,以便最好地管理应用程序的流程?
任何可能让我们更接近的信息都会很高兴:)
提前谢谢!
奥拉夫冈德森
编辑#1:我们的Objective-C程序员设法使用CouchDb连接两个iPhone设备.iPhone应用程序由一个表视图组成,它与数据库有并发连接,这样当有人POST到数据库时,它会显示在所有其他连接手机的tableview上.看哪:聊天系统严重无效.
比方说,如果我使用Riak数据库存储电影等,我如何将块中的二进制文件流式传输到任何客户端(可能是下载然后播放或直接播放?)Riak建议用于存储大型二进制文件吗?此外,我已经读过某个地方,最大文件是50 MB,否则会导致问题,但这似乎是旧的文档.谁能提供更多信息?
什么是CQL等价物:INCR MyCounter ['123'] ['test'] BY 1
我有一个要求,我需要我的数据库来存储以下数据:
- For each build, store the results of 3 performance runs. The result includes tps and latency.
Run Code Online (Sandbox Code Playgroud)
阅读cassandra数据模型,这直接映射到以下格式的超级列族:
BenchmarkSuperColumnFamily= {
build_1: {
Run1: {1000K, 0.5ms}
Run2: {1000K, 0.5ms}
Run3: {1000K, 0.5ms}
}
build_2: {
Run1: {1000K, 0.5ms}
Run2: {1000K, 0.5ms}
Run3: {1000K, 0.5ms}
}
...
}
Run Code Online (Sandbox Code Playgroud)
但是,我在下面的回答中读到,不鼓励使用Super Column系列.我想知道是否有更好的方法为我的要求创建模型.
PS,我从下面的文章中借用了JSONish表示法
我正在使用redis为我的Web应用程序实现社交流和通知系统.我是redis的新手,我对哈希及其效率有些怀疑.
我已经阅读了这篇很棒的Instagram帖子 ,我计划实现他们类似的解决方案,以实现最小的存储空间.
正如他们的博客中提到的,他们确实喜欢这样
为了利用散列类型,我们将所有媒体ID分配到1000个桶中(我们只取ID,除以1000并丢弃剩余部分).这决定了我们陷入的关键; 接下来,住在该密钥的散列内,媒体ID为查找键中的散列和用户ID值.一个例子,给定媒体ID为1155315,这意味着它属于桶1155(1155315/1000 = 1155):
HSET "mediabucket:1155" "1155315" "939"
HGET "mediabucket:1155" "1155315"
> "939"
Run Code Online (Sandbox Code Playgroud)
因此,不是拥有1000个单独的密钥,而是将它存储在一个具有数千个查找键的哈希中.而我的疑问是,为什么我们不能增加查找键值更加大.
例如: Media ID of 1155315 will fall into mediabucket:115 by dividing it by 10000
甚至更大.
他们为什么要使用一个带有1000个查找键的哈希桶来解决问题.为什么他们不能拥有一个包含100000个查找键的哈希桶.这与效率有关吗?
我需要您在我的Web应用程序中实现有效方法的建议.
PS请!不要说stackoverflow不是用于询问建议而我不知道在哪里可以找到帮助.
谢谢!
我需要找出文档是否存在但是Solr服务器中保存的文档非常大,所以如果我使用经典搜索来检索具有指定id的文档并且返回文档,则需要花费太多时间来处理.是否有可能返回例如匹配文档的数量而不检索实际文档?
我需要在我的软件中通过Web界面允许用户设计的表单创建.即,他们创建一个问题,类型(文本,广播,复选框等),选项(如果需要)(无线电/支票),然后添加,并继续在此过程中,直到他们在表单中创建所有字段.
除了查看/填写/打印它们之外,不会对它们进行任何查询,即它们添加可以无限次填写的"问卷"(有些可能是20次,数百万次).
经过一些研究后,似乎EAV类型的解决方案听起来不错,除了那里有很多负面看法.很多人建议在这种情况下使用NoSQL数据库,但我并没有真正看到它们的优点 - 你仍然拥有一个包含许多字段的表单,然后是许多字段的结果.
某些字段(text/text_area/date)会有一个可能的值,但许多字段也有多个选项(单选按钮,选择下拉菜单,复选框).
这是传统SQL中的示例设计:
form:creator_id,name
form_field:form_id,order,question,type(text,text_area,date,radio,select,check)
form_field_option:form_field_id,名称,值,顺序(用于收音机/选择/检查)
form_result:form_id,application_id(不是我使用的名称,但所有结果都属于'应用程序')
form_field_value:form_result_id,form_field_id,form_field_option_id,value(如果选项字段的值为空,则text_field_option_id的文本字段为空)
基于此构建表单并获得结果似乎相当容易.它可能或可能不完全有效但是说一个典型的形式是5-30个问题,那会不会很糟糕?
把它放在NoSQL数据库中是否有任何优势,即Mongo或类似的东西?如果是这样,你能给我具体的例子,给我一个样本设计吗?我已经看到很多答案,比如'NoSQL更适合这个',但我没有这方面的经验,是因为更快的检索结果,还是什么?使用NoSQL会有什么缺点?
谢谢