草庐IT

relational-database

全部标签

database - MongoDB - 过滤后获取嵌套数组大小的文档

问题:我正在尝试获取文档列表,并为每个文档计算给定值在同一文档的嵌套数组中出现的次数。我有一个使用聚合框架的工作示例,但我想知道是否有更好的方法来完成同样的事情,所以我可以对不同的方法进行基准测试。简化数据模型:集合“Raffles”中的单个文档:{"_id":objectId,"name":string,"ends_at":ISODate/Timestamp,..."subscribers":string[]//Listofuserids}集合由表示抽奖/抽奖事件的文档组成,其中包含名称和开始/结束日期。用户可以订阅抽奖事件。用户可以多次订阅同一个抽奖事件。95%的阅读查询都需要抽奖

database-design - 如何在这个嵌套文档结构(MongoDB)中进行查询?

(对不起,如果这是一个微不足道的问题。)我有这样的文档(Python语法):{'_id':SomeObjectId,'features':[{'id':'featureX','value':6},{'id':'featureY','value':45}]}使用此结构,可以轻松找到在特征列表中包含“featureX”的所有文档。但我也有兴趣检索子文档中关联的值。我认为在Python中,如果我通过这样的查询获取文档:db.articles.find({'features.id':'featureX'})那么我将需要遍历数组'特征”来找出正确的“值”。是否有其他类型的查询可以给我有趣的值(在

mongodb - 搜索实现 : ElasticSearch vs MongoDB vs Relational Database

我正在设计一个大型旅游市场代理机构,其中有170000家酒店和3000种房型。我的实体的简单表示是:Hotel:destination:Parisrooms:room_a:type:singleroom_b:type:doubleRoomType:name:doublepaxes(peopleinroom):2最基本的搜索操作需要用户提供目的地和所需房间的数量以及每个房间的人数。在我看来,获取所有提供所需房间的酒店的简单SQL查询似乎很简单,但我担心我的数据大小。到目前为止,我只使用过关系数据库,之前没有使用过NoSQL数据库(例如MongoDB和ElasticSearch)的经验,我

mongodb - mLab 连接错误 : Database name cannot have reserved characters for mongodb://

我在运行mLab命令以通过mongoshell连接时遇到mongoDB连接错误。使用下面的mLab命令在Windowsgitbash终端下运行。我没有为数据库名称使用任何保留字符,基本上只是一个小写字符串。有什么想法吗?使用mongoshell连接:mongods237967.mlab.com:37967/-u-pconnectingto:mongodb://:27017/ds237967.mlab.com%3A379672018-01-01T00:20:45.371-0800EQUERY[thread1]Error:Databasenamecannothavereservedchar

database - 计算符合条件的数组元素

我有一个名为“session”的mongoDB集合,参与者如下:[{"_id":5b894357a0c84d5a5d221f25,"conferenceName":"myFirstConference","startDate":1535722327,"endDate":1535722420,"participants":[{"name":"user1","origin":"internal","ip":"192.168.0.2"},{"name":"user2","origin":"external","ip":"172.20.0.3"},]},...]我想得到以下结果:[{"conf

database - 在非关系数据库中存储喜欢

要点我在我的应用程序中实现了一个赞按钮。假设用户能够喜欢其他用户的产品。问题我现在想知道以下哪种方法是将这些点赞存储在非关系数据库(在我的例子中是MongoDB)中最有效和最可靠的方法。任何用户都不能对产品点赞两次,这一点很重要。可能的解决方案(1)存储那些喜欢产品本身的用户ID,并通过likes.length跟踪喜欢的数量//Productindatabase{likes:['userId1','userId2','userId3',...],...}(2)存储用户自己喜欢的所有产品,并通过产品上的数字跟踪喜欢的数量//Userindatabase{likedProducts:['p

mongodb - 为什么多值字段在关系数据库中不是一个好主意

一直在使用Mongodb和Solr/Lucene,我开始怀疑为什么关系数据库的多值字段(通常)被认为是一个坏主意?我知道关系数据库的理论基础和normalization.然而,在实践中,我遇到了很多用例,在这些用例中我最终使用键值对的元表来补充主表,例如在标记的情况下,我希望不必进行多次连接查找数据。或者要求突然从必须支持单个作者变为每篇文章支持多个作者。那么,多值字段有哪些缺点,或者供应商选择不支持它是因为它不是SQL标准的一部分? 最佳答案 主要缺点是查询偏差。此类数据库往往在设计时考虑到一种特定类型的查询,而当需要编写其他查询

python - 查找速度 : State or Database?

我的服务器上有一堆单词列表,我一直在计划制作一个简单的开源JSONAPI,如果密码在列表1上,它就会返回,作为验证方法。我在Python中使用Flask执行此操作,如果存在输入,实际上只是返回。一个小问题:词表总计约1.5亿个条目和1.1GB的文本。我的API(最小)如下。将每一行存储在MongoDB中并重复查找,还是使用单例将整个内容存储在内存中,并在我调用app.run时在启动时填充它更有效?或者差异是主观的?此外,做后者甚至是好的做法吗?我想如果我向公众开放,查找可能会开始变得很费力。我也有人建议Trie进行高效搜索。更新:我做了一些测试,对于如此多的记录,文档搜索速度非常慢。对

php - MySQL/PHP : how to display only one category with related items

我的目标是使用PHP和MySQL从数据库中选择与特定类别相关的所有项目。使用下面的脚本,我可以选择具有相关项目的所有类别。$sql=query("SELECTbikeAS'cat_name',c.imageAS'image',p.titleAS'product_name'FROMproductspINNERJOINcategoriescONp.category_id=c.id");while($row=mysqli_fetch_array($sql)){echo$row['cat_name'].'';echo$row['product_name'].'';echo$row['image

mysql - 我如何创建一个高效的 MySQL 数据库来自动完成像谷歌这样的请求

我想获得一些关于如何创建一个高效的MySQL数据库的想法,该数据库可以处理高流量的自动完成请求,例如Google的新自动SERP更新功能。这样做的关键是,我正在尝试获取我的书的内容,并且我想以一种方式为文本编制索引,以便数据库以最快/最少的开销请求相关文本。例如:如果我输入文本:“as”,我基本上会搜索数据库(整本书)并查看书中句子的结果集:"...thatisasIwassaying...""asIintended...""Thisisasgoodasitgets"...但是当我输入一个“k”并且它拼写为“ask”时,结果集就变成了(即):"Askyourfather...""...