我正在使用 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) 我想使用两个数组的 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) 数据结构是这样的:
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) 在卡桑德拉 '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) 尝试导入 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”添加到文件名,但这些都不起作用.. 任何帮助表示赞赏
对于电子商务 Web 应用程序的购物车(和结帐流程)用例,使用关系数据库(RDBMS) 或NoSQL DB作为 MongoDB/Cassandra/others哪个更好?
从目录的角度来看,NoSQL使用灵活的架构、数据/节点的水平扩展成为理想的用例。
购物车用例的每种方法的优缺点是什么?
我已经按照官方文档使用 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) 我需要存储和访问金融市场烛台信息。
我需要储存的蜡烛棒数量开始变得惊人(巨大)。有 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 中进行初始提取,或者:
这种方法的缺点:
每次创建新蜡烛时,我都必须解析 json,添加任何新蜡烛棒并进行字符串化并保存。
这种方法的优点:
我可以使用 Javascript 来管理数组并确保它已排序等
需要一些关于 Cassandra IDE 的好建议,Windows 操作系统支持这些 IDE,并提供一些好的文档。
在 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)