标签: nosql

多个redis调用或单个调用Mongo或其他数据库引擎

我知道redis很快,我发现只使用redis就可以实现很多东西.但是以牺牲多个查询为代价.在我使用Mongo时,我可能有一个模型/架构,如:

聊天室(Mongo)

  • _id:ObjectId
  • name:string
  • 用户:数组

有了redis,我需要更复杂的东西

  • chatrooms:<<id>> 其中id需要手动生成
    • 名称
  • chatrooms:<<id>>:users 存储用户集

要检索mongo的聊天室详细信息很简单,使用mongo我需要在这种情况下产生2个查询.在更复杂的用例中,可能更多

所以我从性能的角度来看,哪个更高效?从开发的角度来看,肯定是以简单的Mongo为例.

database performance mongodb nosql redis

0
推荐指数
1
解决办法
424
查看次数

RethinkDB中具有两个数字的多重和复合二级索引

我有一个空的RethinkDB表中的文档,numbers下面包含嵌套对象.我在内部对象内的一对数字上创建了一个二级索引,一个复合索引和一个多索引.复合因为我想使用2元素数组作为辅助索引,因为同一个2对可能对应多个文档.

在这里,我创建了该二级索引并在Data Explorer浏览器视图中插入了一些文档:

r.db('test')
    .table('numbers')
    .indexCreate('idx', [ r.row('group')('a'), r.row('group')('b') ],
                 {multi : true});
r.db('test').table('numbers').insert([
  {name : 'Foo', group : {a : 2, b : 3}},
  {name : 'Bar', group : {a : 2, b : 9}},
  {name : 'Baz', group : {a : 2, b : 3}},
  {name : 'Qwer', group : {a : 4, b : 4}}
]);
Run Code Online (Sandbox Code Playgroud)

现在我去运行查询between.对于这个例子,我希望看到三个文件返回,但我没有得到任何文件:

r.db('test').table('numbers').between([ 2, 0 ], [ 3, 5 ], {index : 'idx'});
//  No results …
Run Code Online (Sandbox Code Playgroud)

database nosql rethinkdb

0
推荐指数
1
解决办法
947
查看次数

NoSQL数据库设计用于具有多个限制的查询(Firebase)

我需要最佳实践技巧,以增强我的noSQL数据库(在Firebase上托管)的性能。此外,我需要有关如何构造节点的技巧。

该数据库存储产品信息,具有三个主要属性:

$productId          
     /date           
     /category           
     /subcategory
Run Code Online (Sandbox Code Playgroud)

在我的网站上,我有三种看法:

  • 检索最后4个产品(orderBy日期)
  • 检索类别X的最后4个产品(按日期)
  • 检索类别X和子类别Y的最后4个产品(按日期)。

请注意,我还有一个节点product_images,其子节点与productID匹配。因此,按以下方式构造数据库:

$categoryId
        $subCategoryId 
               $productId
Run Code Online (Sandbox Code Playgroud)

无法使用,因为我需要事先知道$ categoryId和$ subCatrgoryId,然后才能将其与$ productId匹配。这也将使检索最后4个产品变得困难。

我将如何高效地构建noSQL数据库,以及如何使用Firebase筛选出具有多个限制的产品来检索产品?

我知道在Firebase中可以使用orderByChild和equalTo,但这仅适用于一个限制,而我必须处理一到三个。

database database-design nosql firebase

0
推荐指数
1
解决办法
730
查看次数

NoSQL查询语言,UnQL?N1QL?CouchBase,C嵌入式库

我正在研究DocumentDB,我正在检查查询端选项.我知道目前尚未确定任何事情,但有一些我已经看到完全回答的问题.

  1. Couchbase退出了UnQL?然后开发N1QL?这是否意味着他们将N1QL视为更合适的不同查询语言?或者它是否扩展了UnQL中设置的内容?有什么事实上正式标准化?

  2. 有人允许实施N1QL吗?这是一个开放的事实上的标准,而不是以某种方式获得专利的东西.

nosql couchbase unql sql++

0
推荐指数
1
解决办法
187
查看次数

mongodb查询结果

[
    {
        "userid": "abcde",
        "dates": {
            "2-01-2015": {
                "9-10": {
                    "ava": "yes",
                    "bookibg_id": "null"
                },
                "10-11": {
                    "ava": "yes",
                    "bookibg_id": "null"
                }
            },
            "3-01-2015": {
                "9-10": {
                    "ava": "no",
                    "bookibg_id": "null"
                },
                "10-11": {
                    "ava": "no",
                    "bookibg_id": "null"
                }
            }
        }
    },
    {
        "userid": "abcde",
        "dates": {
            "2-01-2015": {
                "9-10": {
                    "ava": "yes",
                    "bookibg_id": "null"
                },
                "10-11": {
                    "ava": "no",
                    "bookibg_id": "null"
                }
            },
            "3-01-2015": {
                "9-10": {
                    "ava": "no",
                    "bookibg_id": "null"
                },
                "10-11": {
                    "ava": "no",
                    "bookibg_id": "null"
                } …
Run Code Online (Sandbox Code Playgroud)

mongodb nosql mongodb-query

0
推荐指数
1
解决办法
56
查看次数

CouchDB复制错误 - 仅允许POST

我试图在CouchDB上部分复制数据库.这是我使用命令提示符实现的查询:

CURL POST http://localhost:5984/_replicate HTTP/1.1 Content-Type: application/json {"source":"source_db", "target":"target_db", "doc_ids":["00123f8-8uht1-81ia-n1762-81ubas81762121iaj1"]}
Run Code Online (Sandbox Code Playgroud)

这是错误:

Failed to connect to POST port 80: Timed Out
{"error":"method_not_allowed", "reason":"Only POST allowed"}
Run Code Online (Sandbox Code Playgroud)

导致错误的原因是什么?我如何摆脱它?

curl couchdb database-replication nosql

0
推荐指数
1
解决办法
654
查看次数

如果不存在,MongoDB是插入记录的最快方式吗?

我想在MongoDB数据库中插入一条记录,但前提是它还不存在.有些东西告诉我这个代码在性能方面不是最佳的:

if db.foo.find(record).count() == 0:
    db.foo.insert(record)
Run Code Online (Sandbox Code Playgroud)

怎么做最快的方式?

python mongodb nosql mongodb-query

0
推荐指数
1
解决办法
3053
查看次数

合并sql数据库和不合并sql数据库是否有意义?

就像sql和无sql数据库都有优点和缺点一样,因此如果我们要利用这两个数据库的优点。我们可以这样做吗?就像复杂查询一样,我们应该首选sql而非no sql,并且对于分层数据存储,没有sql数据库比sql数据库更好。因此,如果有一种将两者结合的方法,请对此进行简要介绍。

mysql sql database sql-server nosql

0
推荐指数
1
解决办法
1140
查看次数

使用N1QL从couchbase中的json获取嵌套对象

我跟随json作为Couchbase中的一个条目:

{
    "messageType": "TRANS",
    "failCount": 0,
    "workOrderDetailMap": {
        "10873": {
            "requestDate": "20160715151239",
            "id": 10873,
            "responseDate": "20160715151305",
            "responseCode": 0,
            "status": "SUCCESS",
            "resultDocuments": [
                "xyz"
            ]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想resultCode通过N1QL查询得到字段:

Select * from myproject where workOrderDetailMap.responseCode = 0;
Run Code Online (Sandbox Code Playgroud)

我得到0结果.

我怎样才能做到这一点 ?

json nosql couchbase sql++

0
推荐指数
1
解决办法
706
查看次数

为基于日期的全球DocumentDB应用程序选择正确的PartitionKey

我正在开发一个全球应用程序,其中大多数搜索基于地理数据(最近的记录给定坐标)和日期范围.

因此,基本上可能是AirBnb,Booking等应用程序的主要搜索.

考虑到这些上下文,我应该在DocumentDB分区集合中选择哪个分区键

谢谢!

更新:就像我告诉马蒂亚斯(见答案),我和我的朋友,我们正在考虑像国家这样的事情.该应用程序是关于搜索.另一件重要的事情是我们有约会.大量的约会.由于我们是DDB的新手,我们的问题是:" 如果我们选择国家作为分区密钥,我们的查询必须在不同国家/地区内搜索,会发生什么? ".即在国家边界附近搜索georadius.

database geospatial azure nosql azure-cosmosdb

0
推荐指数
1
解决办法
540
查看次数