标签: nosql

我应该如何为嵌套文档建模MongoDB集合?

我正在为建筑产品商店管理MongoDB数据库.最直接的系列是产品,对吧?有很多产品,但是它们都属于5-8个类别中的一个,然后属于一小部分子类别中的一个子类.

例如:

-Electrical
  *Wires
    p1
    p2
    ..
  *Tools
    p5
    pn
    ..
  *Sockets
    p11
    p23
    ..
-Plumber
  *Pipes
    ..
  *Tools
    ..
  PVC
    ..
Run Code Online (Sandbox Code Playgroud)

我将在网站客户端使用Angular来显示整个产品目录,我考虑使用AJAX来查询我想要的正确产品子集.

然后,我想知道我是否应该只管理一个集合:

{

    MainCategory1: {


        SubCategory1: {
        {},{},{},{},{},{},{}
        }
        SubCategory2: {
        {},{},{},{},{},{},{}
        }
        SubCategoryn: {
        {},{},{},{},{},{},{}
        }               
    },
    MainCategory2: {


        SubCategory1: {
        {},{},{},{},{},{},{}
        }
        SubCategory2: {
        {},{},{},{},{},{},{}
        }
        SubCategoryn: {
        {},{},{},{},{},{},{}
        }               
    },  
    MainCategoryn: {


        SubCategory1: {
        {},{},{},{},{},{},{}
        }
        SubCategory2: {
        {},{},{},{},{},{},{}
        }
        SubCategoryn: {
        {},{},{},{},{},{},{}
        }               
    }   
}
Run Code Online (Sandbox Code Playgroud)

或每个类别一个集合.文件数量可能不会高于500.但我关心的是:

  • 快速DB回答,
  • 简单的服务器端DB查询,和
  • 用于将结果呈现为html的客户端角度代码.

我正在使用mongodb node.js模块,而不是Mongoose.

我将做什么CRUD操作? …

database-design mongodb nosql node.js

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

Couchbase元数据开销警告

我有一个Couchbase(v 2.0.1)群集,其中包含以下规范:

  • 5个节点
  • 1桶
  • 每节点16 GB Ram(总共80GB)
  • 每节点200GB磁盘(总共1Tb)

目前我在这个桶中有201.000.000个文件,只有200GB的磁盘在使用中.

我每分钟都会收到以下警告:

Metadata overhead warning. Over 51% of RAM allocated to bucket "my-bucket" on node "my-node" is taken up by keys and metadata. 
Run Code Online (Sandbox Code Playgroud)

Couchbase文档说明了以下内容:

表示存储桶现在使用超过50%的已分配RAM来存储元数据和密钥,从而减少了可用于数据值的RAM量.

我知道这可能是一个有用的指标,我可能需要将节点添加到我的集群,但我认为这应该是不必要的,因为桶的可用资源量.

一般桶分析: 一般桶分析

我怎么知道是什么产生了如此多的元数据?

有没有办法配置公差百分比?

nosql couchbase

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

在DocumentDB中使用多个值进行SELECT

我有一个Employees集合,我想要检索10个员工的完整文档,我的ID要发送到我的SQL SELECT.我怎么做?

为了进一步澄清,我有10个EmployeeId,我想从Employees集合中提取这些员工的信息.我很感激你的帮助.

azure nosql document-database azure-cosmosdb

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

cassandra中的分区内部结构

我正在观看:https: //academy.datastax.com/courses/learning-cassandra-read-path/understanding-partition-summaries-and-indexes 我对此演示文稿有疑问.

分区摘要代表什么?:)

我的第一个想法是它只是一个缓存,保持x%的键位置.这意味着大约一个126的请求可以直接获得一个密钥而其他125个必须遍历整个表.但我认为这是非常无效的.

我的第二个想法是,分区摘要以某种方式能够为指定的键提供一系列索引,其中应存在给定键的行.但我无法想象这是如何实现的?特别是如果这个表应该是大小|分区索引|/index_interval

我想到的另一个问题是,SSTable可以为特定密钥保留许多条目吗?

谢谢,krzychusan

indexing partitioning cassandra nosql

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

Hbase自动递增任何列/行键

我是Hbase的新手

是否可以/如何在Hbase中自动增加行键?(比如每个插入行键必须自动递增)

或者是否可以自动增加任何其他列?(对于每个插入,此列必须自动递增1)

hadoop hbase cassandra nosql

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

使用LDT时的子记录错误

我正在使用LDT地图,并且最初得到了这个错误.

com.aerospike.client.AerospikeException: Error Code 1424: LDT-Sub Record Create Error
Run Code Online (Sandbox Code Playgroud)

我能够ldt-enabled true在in 的帮助下删除它,aerospike.conf
但现在我遇到了

com.aerospike.client.AerospikeException: Error Code 1422: LDT-Sub Record Open Error
Run Code Online (Sandbox Code Playgroud)

代码段:

for (Entry<String, Map<String, Object>> myLdtBin: myLdtMap.entrySet()) {
    LargeMap lmap = client.getLargeMap(myWritePolicy, myKey, myLdtBin.getKey() , null);
    lmap.put(myLdtBin.getValue()); //<-- Error here
}
Run Code Online (Sandbox Code Playgroud)

有什么指针吗?

java nosql aerospike

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

CouchDB压缩

我有一个MySQL数据库,我想存储在外部4TB驱动器上,但是当我将数据库复制到它时,服务器无法重新启动.我发现它与扇区大小问题有关.

这让我有理由跳到NoSQL.我喜欢CouchDB的易用性和HTTP API,但数据库根本不适用于没有压缩的我.我有一个40GB的MySQL数据库,数据迁移甚至不到完成的十分之一,它已经超过100GB.

有什么我想念的吗?我/我可以启用压缩吗?

谢谢!

mysql compression couchdb nosql

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

MongoDB:$ match和$ explain

我有以下查询:

uno = db.prueba.aggregate(
    {$project: {a_gt_b: {$cmp: ['$num-a','$num-b']}}},
    {$match: {a_gt_b:{$gt:0}}},
    {$group:{"_id":"$a_gt_b",total:{"$sum":1}}},
    {$project: {"_id":0,"total":1}}
);
Run Code Online (Sandbox Code Playgroud)

我想执行$ explain命令,根据这个答案, 我必须采取$ match部分,但我不知道如何.

mongodb explain nosql aggregation-framework

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

ArangoDB自定义排序顺序

我想按特定顺序按字段排序,比方说2,4,1,5,3.

在MySQL中,我可以使用ORDER BY FIELD(id,2,4,1,5,3).

ArangoDB有什么相同的东西吗?

mysql nosql arangodb aql

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

如何将查询写入我的Cloudant数据库?

我正在尝试为我的NoSQL数据库实现正确的查询,但我很困惑如何在Cloudant中执行此操作.在SQL中有

SELECT * FROM mydb
WHERE user_permit_doc_id = 10 
AND user_tracking_id = 1
Run Code Online (Sandbox Code Playgroud)

我的查询如下:

https://293e2cb7-3561-4004-a1c3-58d54f517ee6-bluemix.cloudant.com/user_files/_design/user_tracking/_view/new-view?startkey=["user_permit_doc_id:10"]
Run Code Online (Sandbox Code Playgroud)

它返回所有文档,而不仅仅是具有此id的文档.

这是View的Map Reduce功能

function(doc) {
    if(doc.user_tracking_id !== null){
        emit(doc);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的docs数据库中的doc示例

{
  "_id": "6e57baa78c6415beeee788bc786cc53a",
  "_rev": "5-f15352bce99c307bd246bda4dc0da75a",
  "user_tracking_id": "1",
  "user_permit_id": "2",
  "user_permit_doc_id": "10",
  "user_id": "1",
  "_attachments": {
    "6y41j4i68cic.jpg": {
      "content_type": "image/jpeg",
      "revpos": 2,
      "digest": "md5-KC+G5tbz2UWZSzlPHvBy/Q==",
      "length": 68367,
      "stub": true
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

nosql cloudant ibm-cloud

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