标签: nosql

mongodump 使用 --query 参数给出“不允许位置参数”错误

我正在使用 mongodb 2.6 并尝试使用查询选项创建转储给出“不允许位置参数”。

我试图获取所有参数时间戳在指定范围之间且其 id 为任何指定格式的产品。

 mongodump --host 10.xx.xxx.xx:xxxx --db test --collection products --username abc --password uvw --query '{"parameterList":{$elemMatch:{ "paramName":"TimeStamp","paramValue":{$gte:"20160620000000",$lt:"20160724000000"}}},"parameterList.paramValue": {$in:[/SPC126/,/CSC234/]}}' --authenticationDatabase test --out "c:\New folder\dump"
Run Code Online (Sandbox Code Playgroud)

文件结构

 { 
   "_id": ObjectId("590074c362f41f15144996fa"),
   "product": "device1",
   "parameterList":[{"paramName":"TimeStamp",
                     "paramValue":"20160731000700"},
                    {"paramName":"Id",
                     "paramValue": "SPC126332"}]
  }
Run Code Online (Sandbox Code Playgroud)

database mongodb nosql mongodump

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

如何连接同一文档中的数组?

我想使用两个数组的 ID 将数据合并到一个集合中。

一个例子如下所示。

{
    "_id": ObjectId ("5976fd2eb0adec0a32fa9831"),
       "People": [
          {
            "_id": 1,      <--- ID
            "Name": "jane"
          },
          {
            "_id": 2,      <--- ID
            "Name": "Mark"
          }
       ],
       "Contents": [
          {
            "userID":  2,   <--- People ID
            "Text": "111"
          },
          {
            "userID":  1,   <--- People ID
            "Text": "Hi"
          }
       ]
}
Run Code Online (Sandbox Code Playgroud)

我想制作上述文件如下。

{
    "_id": ObjectId ("5976fd2eb0adec0a32fa9831"),
    "People": [
       {
          "_id": 1,
          "Name" : "Jane"
       },
       {
          "_id": 2,
          "Name": "Mark"
       }
    ],
    "Contents": [
       {
          "userID": 2,
          "Name": "Mark",    <-- Adding
          "Text": …
Run Code Online (Sandbox Code Playgroud)

mongodb nosql mongodb-query aggregation-framework

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

MongoDB 不使用 allowDiskUsage:True 处理聚合

数据结构是这样的:

way: {
    _id:'9762264'
    node: ['253333910', '3304026514']
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试以各种方式计算节点出现的频率。这是我使用 pymongo 的代码:

node = db.way.aggregate([
    {'$unwind': '$node'},
    {
        '$group': {
            '_id': '$node',
            'appear_count': {'$sum': 1}
        }
    },
    {'$sort': {'appear_count': -1}},
    {'$limit': 10}
],
    {'allowDiskUse': True}
)
Run Code Online (Sandbox Code Playgroud)

它会报错:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File ".../OSM Wrangling/explore.py", line 78, in most_passed_node
    {'allowDiskUse': True}
  File ".../pymongo/collection.py", line 2181, in aggregate
    **kwargs)
  File ".../pymongo/collection.py", line 2088, in _aggregate
    client=self.__database.client)
  File ".../pymongo/pool.py", line 464, in command
    self.validate_session(client, session)
  File ".../pymongo/pool.py", …
Run Code Online (Sandbox Code Playgroud)

python database mongodb nosql

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

cassandra中主键上的模式匹配“喜欢”

在卡桑德拉 'like'可用于在 SASI 索引列上查找满足搜索模式的匹配结果,它运行良好,但如何在主键上使用 like。

这是我的桌子:

CREATE TABLE indexxx (
    title VARCHAR,
    PRIMARY KEY (title));
Run Code Online (Sandbox Code Playgroud)

主键上不允许索引

CREATE CUSTOM INDEX testtt ON indexxx (title) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH OPTIONS = {'mode': 'CONTAINS', 'analyzer_class': 'org.apache.cassandra.index.sasi.analyzer.StandardAnalyzer', 'case_sensitive': 'false'};



InvalidRequest: Error from server: code=2200 [Invalid query] message="Cannot create secondary index on partition key column title"
Run Code Online (Sandbox Code Playgroud)

当尝试在没有 sasi 索引的情况下使用 like 时,

select * from indexxx  where title like '%kkk%' ;

InvalidRequest: Error from server: code=2200 [Invalid query] message="LIKE restriction is only supported on properly …
Run Code Online (Sandbox Code Playgroud)

cql cassandra nosql cql3 cassandra-3.0

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

将数据导入 MongoDB Atlas

尝试导入 JSON 文件

mongodb 版本 -- V3.6.3

外壳版本 3.6

使用此命令连接到集群并导入

mongoimport --host cluster0-shard-00-00-xxm0e.mongodb.net:24537 --db ny --type json --file C:/data/docs/ny.json --jsonArray --authenticationDatabase admin --ssl --username xyz --password mongodb
Run Code Online (Sandbox Code Playgroud)

错误信息

2018-03-03T22:53:45.477-0800    no collection specified
2018-03-03T22:53:45.478-0800    using filename 'ny' as collection
2018-03-03T22:53:46.062-0800    Failed: error connecting to db server: server` returned error on SASL authentication step: bad auth Authentication failed.
2018-03-03T22:53:46.062-0800    imported 0 documents
Run Code Online (Sandbox Code Playgroud)

尝试了一些选项,例如删除 -ssl 添加 ----sslAllowInvalidCertificates 将“C:/data/docs/ny.json”添加到文件名,但这些都不起作用.. 任何帮助表示赞赏

json mongodb importerror nosql

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

电子商务/购物车(和结帐流程):使用关系或 NoSQL

对于电子商务 Web 应用程序的购物车(和结帐流程)用例,使用关系数据库(RDBMS) 或NoSQL DB作为 MongoDB/Cassandra/others哪个更好?

从目录的角度来看,NoSQL使用灵活的架构、数据/节点的水平扩展成为理想的用例。

购物车用例的每种方法的优缺点是什么?

oracle rdbms mongodb cassandra nosql

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

如何使用 Python 在 Docker 容器中访问 ScyllaDB?

我已经按照官方文档使用 ScyllaDB 设置了 Docker 容器。我创建了键空间和表。现在我想在这个表中插入一些数据。我想知道我可以这样做吗?我找到了例子:

import cql
con = cql.connect('localhost', 9160,  'logs', cql_version='3.0.0')
print ("Connected!")
cursor = con.cursor()
CQLString = "INSERT INTO event_attend (event_id, event_type, event_user_id) VALUES (131, 'Party', 3156);"
cursor.execute(CQLString)
Run Code Online (Sandbox Code Playgroud)

但是我得到如下所示的错误。我找不到任何说明如何使用 Docker 完成的示例。有任何想法吗?

No handlers could be found for logger "thrift.transport.TSocket"
Traceback (most recent call last):
  File "scylla_test.py", line 2, in <module>
    con = cql.connect('localhost', 9160,  'logs', cql_version='3.0.0')
  File "/usr/local/lib/python2.7/dist-packages/cql/connection.py", line 143, in connect
    consistency_level=consistency_level, transport=transport)
  File "/usr/local/lib/python2.7/dist-packages/cql/connection.py", line 59, in __init__
    self.establish_connection()
  File "/usr/local/lib/python2.7/dist-packages/cql/thrifteries.py", line 151, …
Run Code Online (Sandbox Code Playgroud)

python ubuntu nosql docker scylla

3
推荐指数
2
解决办法
1366
查看次数

在 Redis / NoSQL 或关系数据库中存储大量数据?

我需要存储和访问金融市场烛台信息。

我需要储存的蜡烛棒数量开始变得惊人(巨大)。有 1000 个市场,每个市场都有许多交易对,每一对都有许多时间范围,每个时间范围是一组如下所示的蜡烛。例如,下面的数组可以用于每小时价格数据或每日价格数据。

我需要在任何给定时间向多个用户提供此信息,因此需要存储它并以某种方式使其可用。

数据看起来像这样:

[
    {
        time: 1528761600,
        openPrice: 100,
        closePrice: 20,
        highestPrice: 120,
        lowesetPrice:10 
    },
    {
        time: 1528761610,
        openPrice: 100,
        closePrice: 20,
        highestPrice: 120,
        lowesetPrice:10 
    },
    {
        time: 1528761630,
        openPrice: 100,
        closePrice: 20,
        highestPrice: 120,
        lowesetPrice:10 
    }
]
Run Code Online (Sandbox Code Playgroud)

数据的消费者将主要是一个复杂的基于 Javascript 的图表应用程序,但其他消费者将是节点代码,可能还有其他后端代码。

我目前最好的想法是将烛台保存在 Redis 中,尽管我也考虑过使用 noSQL 数据库。我在这两个方面都不是很有经验,所以我不能 100% 确定 Redis 是正确的选择。虽然它似乎是性能最高的选项,但可能更难使用,因为我必须学习很多东西,而且我不相信 Redis 使用的保存和检索方法会使这变得非常容易,因为,我需要不断地向每个数组添加蜡烛。

我目前正在考虑类似的事情:

从烛台 api 中进行初始提取,或者:

  1. 创建一个带有合适标签的 Redis 散列,并将整个蜡烛阵列插入散列,以便它返回由 Javascript 等解析

这种方法的缺点:

每次创建新蜡烛时,我都必须解析 json,添加任何新蜡烛棒并进行字符串化并保存。

这种方法的优点:

我可以使用 Javascript 来管理数组并确保它已排序等

  1. 创建一个 Redis 时间戳列表,它允许我将新蜡烛推到列表中并相信它的顺序正确。然后我可以做一个Redis SCAN吗?返回特定日期之间的时间戳,然后使用时间戳从 Redis 哈希中提取数据。在检索所有这些之后,然后构建一个类似于上面的 json 对象以传递给 Javascript。 …

nosql redis

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

对具有良好文档的 Cassandra IDE 的建议,以便在 Windows 操作系统中工作

需要一些关于 Cassandra IDE 的好建议,Windows 操作系统支持这些 IDE,并提供一些好的文档。

database windows ide cassandra nosql

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

Pyspark 中是否有等效于 SQL 的 MSCK REPAIR TABLE 的方法

在 SQL 中有:

REFRESH TABLE table_name
Run Code Online (Sandbox Code Playgroud)

在 pyspark 中相当于:

spark.refreshTable(table_name)
Run Code Online (Sandbox Code Playgroud)

那么,Pyspark 相当于:

MSCK REPAIR TABLE table_name
Run Code Online (Sandbox Code Playgroud)

hive nosql apache-spark pyspark

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