Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 如何删除以下字符/&引用;从服务路径_Mongodb_Fiware_Fiware Cygnus - Fatal编程技术网

Mongodb 如何删除以下字符/&引用;从服务路径

Mongodb 如何删除以下字符/&引用;从服务路径,mongodb,fiware,fiware-cygnus,Mongodb,Fiware,Fiware Cygnus,早上好 目前我已经在Fiware中建立了我的结构,并在MongoDB中保存了我的历史记录,为此我一直使用Mlab作为宿主。 我附加了我的代理的配置文件,问题在于由于服务路径的强制字符“/”我无法访问生成的历史数据,因为它是MongoDB中不允许用于集合的字符 agent_1.conf cygnus-ngsi.sources = http-source cygnus-ngsi.sinks = mongo-sink cygnus-ngsi.channels = mongo-channel cygn

早上好

目前我已经在Fiware中建立了我的结构,并在MongoDB中保存了我的历史记录,为此我一直使用Mlab作为宿主。 我附加了我的代理的配置文件,问题在于由于服务路径的强制字符“/”我无法访问生成的历史数据,因为它是MongoDB中不允许用于集合的字符

agent_1.conf

cygnus-ngsi.sources = http-source
cygnus-ngsi.sinks = mongo-sink
cygnus-ngsi.channels = mongo-channel

cygnus-ngsi.sources.http-source.channels = mongo-channel
cygnus-ngsi.sources.http-source.type = org.apache.flume.source.http.HTTPSource
cygnus-ngsi.sources.http-source.port = 5050
cygnus-ngsi.sources.http-source.handler = com.telefonica.iot.cygnus.handlers.NGSIRestHandler
cygnus-ngsi.sources.http-source.handler.notification_target = /notify
cygnus-ngsi.sources.http-source.handler.default_service = default
cygnus-ngsi.sources.http-source.handler.default_service_path = /sevilla
cygnus-ngsi.sources.http-source.handler.events_ttl = 2
cygnus-ngsi.sources.http-source.interceptors = ts
cygnus-ngsi.sources.http-source.interceptors.ts.type = timestamp

cygnus-ngsi.sinks.mongo-sink.type = com.telefonica.iot.cygnus.sinks.NGSIMongoSink
cygnus-ngsi.sinks.mongo-sink.channel = mongo-channel
cygnus-ngsi.sinks.mongo-sink.enable_encoding = false
cygnus-ngsi.sinks.mongo-sink.enable_grouping = false
cygnus-ngsi.sinks.mongo-sink.enable_name_mappings = false
cygnus-ngsi.sinks.mongo-sink.enable_lowercase = false
cygnus-ngsi.sinks.mongo-sink.data_model = dm-by-service-path
cygnus-ngsi.sinks.mongo-sink.attr_persistence = row
cygnus-ngsi.sinks.mongo-sink.mongo_hosts = ds******.mlab.com:35866
cygnus-ngsi.sinks.mongo-sink.mongo_username = my_user
cygnus-ngsi.sinks.mongo-sink.mongo_password = ********
cygnus-ngsi.sinks.mongo-sink.db_prefix = sth_
cygnus-ngsi.sinks.mongo-sink.collection_prefix = sth_
cygnus-ngsi.sinks.mongo-sink.batch_size = 1
cygnus-ngsi.sinks.mongo-sink.batch_timeout = 30
cygnus-ngsi.sinks.mongo-sink.batch_ttl = 10
cygnus-ngsi.sinks.mongo-sink.data_expiration = 0
cygnus-ngsi.sinks.mongo-sink.collections_size = 0
cygnus-ngsi.sinks.mongo-sink.max_documents = 0
cygnus-ngsi.sinks.mongo-sink.ignore_white_spaces = true

cygnus-ngsi.channels.mongo-channel.type = com.telefonica.iot.cygnus.channels.CygnusMemoryChannel
cygnus-ngsi.channels.mongo-channel.capacity = 1000
cygnus-ngsi.channels.mongo-channel.transactionCapacity = 100
Cygnus有没有办法从服务路径中删除“/”字符

错误:

解决方案:只需在代理配置中将enconding更改为true即可

cygnus-ngsi.sinks.mongo-sink.enable_encoding = true

多谢各位

正如官方文档中所述,斜杠(“/”)是MongoDB集合的有效字符:您用于MongoDB的可视化工具似乎有问题。是哪一个?非常感谢frb的快速回复!对于我们的案例和使用文档,我们发现在MongoDB数据库命名约定一节中,使用字符/,\,。,“数据库中不接受$。我已经解决了我的问题,并与所有我留下的解决方案进行协作,以防其他用户在MongoDB和Cygnus之间的连接上遇到同样的问题。感谢您的合作!MongoDB数据库名称中禁止使用斜杠,这就是Cygnus从FIWARE服务(不包含任何斜杠)中编写数据库名称的原因。另一方面,MongoDB集合名称中不禁止斜杠,它是由Cygnus基于FIWARE服务路径(包含初始斜杠)组成的。话虽如此,如果您的查看者对包含斜杠的MongoDB集合有任何问题,您是对的,您唯一的选择是通过
enable_encoding=true
configuration.BTW启用非ASCII字符的编码,您可以将解决方案放在正确的答题栏中回答自己:)