我正在为建筑产品商店管理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.但我关心的是:
我正在使用mongodb node.js模块,而不是Mongoose.
我有一个Couchbase(v 2.0.1)群集,其中包含以下规范:
目前我在这个桶中有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量.
我知道这可能是一个有用的指标,我可能需要将节点添加到我的集群,但我认为这应该是不必要的,因为桶的可用资源量.
一般桶分析:

我怎么知道是什么产生了如此多的元数据?
有没有办法配置公差百分比?
我有一个Employees集合,我想要检索10个员工的完整文档,我的ID要发送到我的SQL SELECT.我怎么做?
为了进一步澄清,我有10个EmployeeId,我想从Employees集合中提取这些员工的信息.我很感激你的帮助.
我正在观看:https: //academy.datastax.com/courses/learning-cassandra-read-path/understanding-partition-summaries-and-indexes 我对此演示文稿有疑问.
分区摘要代表什么?:)
我的第一个想法是它只是一个缓存,保持x%的键位置.这意味着大约一个126的请求可以直接获得一个密钥而其他125个必须遍历整个表.但我认为这是非常无效的.
我的第二个想法是,分区摘要以某种方式能够为指定的键提供一系列索引,其中应存在给定键的行.但我无法想象这是如何实现的?特别是如果这个表应该是大小|分区索引|/index_interval
我想到的另一个问题是,SSTable可以为特定密钥保留许多条目吗?
谢谢,krzychusan
我是Hbase的新手
是否可以/如何在Hbase中自动增加行键?(比如每个插入行键必须自动递增)
或者是否可以自动增加任何其他列?(对于每个插入,此列必须自动递增1)
我正在使用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)
有什么指针吗?
我有一个MySQL数据库,我想存储在外部4TB驱动器上,但是当我将数据库复制到它时,服务器无法重新启动.我发现它与扇区大小问题有关.
这让我有理由跳到NoSQL.我喜欢CouchDB的易用性和HTTP API,但数据库根本不适用于没有压缩的我.我有一个40GB的MySQL数据库,数据迁移甚至不到完成的十分之一,它已经超过100GB.
有什么我想念的吗?我/我可以启用压缩吗?
谢谢!
我有以下查询:
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部分,但我不知道如何.
我想按特定顺序按字段排序,比方说2,4,1,5,3.
在MySQL中,我可以使用ORDER BY FIELD(id,2,4,1,5,3).
ArangoDB有什么相同的东西吗?
我正在尝试为我的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)