标签: nosql

MongoDB - 是否可以将 $or 与 $cond 一起使用?

我正在尝试根据日期范围聚合字段。我不知道如何创建一个将计算多个表达式的 $cond 表达式。我正在尝试使用逻辑 $or 运算符,但没有成功。

db.project.aggregate(
    { $match : { brand : 4 } },
    { $project : {
        _id : 0,
        brand : 1,
        count : 1,
        day : 1}
    },  
     { $group : {
        _id : "$brand",
        TotalCount : { $sum : "$count" },        
        TimeRangeCount : {$sum: { $cond: [ { $gte: [ "$day", new Date(2014, 0, 6) ], {$or: [$lte: [ "$day", new Date(2014, 0, 8) ]]} }, "$count", 0 ] }}

    }}    
    )
Run Code Online (Sandbox Code Playgroud)

是否可以将 $or 嵌套在 …

mongodb nosql aggregation-framework

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

聚合框架中的项目布尔值

是否可以project使用 MongoDB 的聚合框架进行操作的布尔值?

例如,给定一个像这样的输入文档:

{
  "id": 123,
  "data": [
    {
      "val": 1
    },
    {
      "val": 2
    },
    {
      "val": 3
    },
    {
      "val": 4
    },
    {
      "val": 5
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

$data.val > 3我想返回的操作是:

{
  "result": [
    {
      "bool_val": 0
    },
    {
      "bool_val": 0
    },
    {
      "bool_val": 0
    },
    {
      "bool_val": 1
    },
    {
      "bool_val": 1
    }
  ],
  "ok": 1
}
Run Code Online (Sandbox Code Playgroud)

这就是我想出的:

db.test.aggregate([{$match: {id: 123}}, 
                   {$unwind: "$data"}, 
                   {$project: {"bool_val": {"$data.val": {$gt: 3}}, _id: 0}} 
                  ]) 
Run Code Online (Sandbox Code Playgroud)

这会产生以下错误:

aggregate …
Run Code Online (Sandbox Code Playgroud)

mongodb nosql aggregation-framework

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

为从 CSV 文件导入的每一行添加 UUID

我们想要将 .csv 文件中的 10 万行导入到 Cassandra 表中。

每行没有唯一的值,因此我们希望向每个导入的行添加 UUID,在从 CSV 文件导入数据时如何自动执行此操作。

.CSV 文件中的示例行(第一行是列名称)

DateTime,Latitude,Longitude,Depth,Magnitude,MagType,NbStations,Gap,Distance,RMS,Source,EventID,Version
2014-09-11T12:36:11.000+00:00,67.689,-162.763,14.6,3.9,ml,,,,0.79,ak,ak11387003,1410441826879
Run Code Online (Sandbox Code Playgroud)

想要将 UUID 添加到每一行,如下所示

UID, DateTime,Latitude,Longitude,Depth,Magnitude,MagType,NbStations,Gap,Distance,RMS,Source,EventID,Version
c37d661d-7e61-49ea-96a5-68c34e83db3a,2014-09-11T12:36:11.000+00:00,67.689,-162.763,14.6,3.9,ml,,,,0.79,ak,ak11387003,1410441826879
Run Code Online (Sandbox Code Playgroud)

cassandra nosql

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

Mongodb 关于帖子、评论、保存和点赞的数据结构

我刚刚学习如何使用 MEANJS 构建网站,并且正在构建我的数据,但不确定最佳实践,我对 NoSql 概念非常陌生。

我需要存储:

questions
answers
likes
saved_questions
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我允许用户保存问题以便稍后查看,并且他们可以访问他们发布的任何答案。我为每个问题提供一些统计数据(即喜欢的数量、答案的数量等)

我是否应该为“问题”及其内部所有内容创建一个文档:

{_id: <ObjectId>,
 user_id: <ObjectId>,
 question: 'how can we....',
 answers: [{user_id: <ObjectId>, answer: ''}],
 likes: [{user_id: <ObjectId>}],
 saves: [{user_id: <ObjectId>}]
}
Run Code Online (Sandbox Code Playgroud)

或者我应该为每个文件制作多个文件?或者我应该同时使用这两种方法?

javascript mongodb nosql

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

从 Couchbase 导出到 CSV 文件

我有一个只有一个节点(我们称之为 localhost)的 Couchbase 集群,我需要将一个非常大的存储桶(我们称之为 XXX)中的所有数据导出到 CSV 文件中。

现在这似乎是一项非常简单的任务,但我找不到让它发挥作用的方法。

根据 Couchbase http://docs.couchbase.com/admin/admin/CLI/cbtransfer_tool.html有关 cbtransfer 工具的(非常糟糕)文档,他们说这是可能的,但他们没有清楚地解释。如果您希望以 csv 格式进行传输(?),他们只是添加一个标志,但它不起作用。也许已经这样做过的人可以帮我一把?

使用文档,我已经能够使用以下命令获得我想要获得的结果(一个干净的 CSV 文件,其中包含 XXX 存储桶中的所有文档):

/opt/couchbase/bin/cbtransfer http://localhost:8091 /path/to/export/output.csv -b XXX

但我得到的是 /path/to/export/output.csv 实际上是一个包含很多文件夹的文件夹,它存储某种 json 元数据,可用于恢复 Couchbase 另一个实例中的 XXX 存储桶。

有人能够将 Couchbase 存储桶(Json 文档)中的数据导出到 CSV 文件中吗?

csv nosql couchbase

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

Redis:多个键与更大的值

我是 redis 新手,有以下问题。对于我的应用程序来说,拥有多个具有较小值的键或具有较大值的单个键会更好吗?举个例子,我们可以有一个包含球队的足球联赛,在每个球队中我们存储球员。我们可以有类似的东西

(key) premier_league  
(value) {MANU : [manu_player1,....,manu_player25], ...., MAN_CITY : [man_city_player1,....,man_city_player25]}
Run Code Online (Sandbox Code Playgroud)

或者类似的东西

premier_league:MANU --> {players:[manu_player1,....,manu_player25]}
premier_league:MAN_CITY --> {players:[man_city_player1,....,man_city_player25]}
Run Code Online (Sandbox Code Playgroud)

nosql redis node-redis

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

Marklogic|NodeJS API - 查询字段的属性

我有一个 json 结构,类似于

{
   foo:"bar",
   keyPhrases:[
      {key: "random thing", value: 5},
      {key: "another random", value: 3}
   ]
}
Run Code Online (Sandbox Code Playgroud)

如何在 keyPhrases.key 上进行单词查询?我试过

qb.word('keyPhrases.key', 'random')

或者

qb.word(qb.property('keyPhrases.key'), 'random')
Run Code Online (Sandbox Code Playgroud)

它不起作用。有任何想法吗?我知道这对于 QBE 是可能的,但对于 Marklogic NodeJS API,你无法指定集合,而我需要这样做。

marklogic nosql node.js

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

使用 python 字典填充 Neo4j

所以我刚刚开始使用 Neo4j,我正在尝试弄清楚如何填充我的 DataFrame。我有一本字典,其中单词作为键,同义词作为列表中的值,我想填充 Neo4j,这似乎是学习如何使用数据库的一种有趣的方式。

一个例子是:

'CRUNK' : [你'醉了',你'浪费了',你'高',你'皱巴巴的',你'疯狂',你'锤子',你'酒精',你'hyphy',你'派对']

这些列表的长度不会相等,因此无法将其转换为更典型的 csv 格式,而且我还没有找到如何填充数据库的解释,就像在 Django 应用程序中填充 SQL 数据库一样。我想做这样的事情:

for each k,v in dictionary:
    add k and add relationship to each value in v
Run Code Online (Sandbox Code Playgroud)

有谁有任何教程、文档或答案可以帮助我指明正确的方向吗?

python dictionary neo4j nosql cypher

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

我应该使用哪种 NoSQL 数据库作为 URL 缩短器?

我正在为大学做一个项目,那就是构建一个 URL 缩短器。我研究了不同类型的 NoSQL 数据库,但我不知道哪种更适合我的目的以及原因。

我可以在键/值数据库、面向文档、面向列或图形之间进行选择。我确信该图不利于我的目标。

请问您有什么建议吗?

key-value column-oriented nosql url-shortener document-oriented

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

使用另一个字段的值查找 MongoDB 对象

最近,我发现很难找到存储在文档中且其密钥位于同一文档的另一个字段中的对象。

{
    list : {
        "red" : 397n8,
        "blue" : j3847,
        "pink" : 8nc48,
        "green" : 983c4,
    },
    result : [
                { "id" : 397n8, value : "anger" },
                { "id" : j3847, value : "water" },
                { "id" : 8nc48, value : "girl" },
                { "id" : 983c4, value : "evil" }
             ]
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取 'blue' 的值,其 id 为 'j3847' 且值为 'water'。

db.docs.find( { result.id : list.blue }, { result.value : 1 } );

# list.blue would return …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb nosql mongodb-query

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