我正在探索MarkLogic数据库,并一直在尝试使用MarkLogic内容泵将数据导入其中。这是csv文件的要点。
firstname, middlename, lastname, address1, address2, city, state, zip, country
Rajath,,A,No 20 GN,16th cross,Bangalore,KA,560029,IN
Rajath1,,,No 75,,Dharwad,KA,560057,IN
Rajath2,,B,No 66,,Haveri,KA,560034,IN
Rajath3,,D,No 24A ,25th cross,Raichur,KA,560095,IN
Rajath4,,,No 36B,,Coorg,KA,,IN
我成功地将它插入数据库中。这是插入的文档。
{
"firstname" : "Rajath4",
"middlename" : "",
"lastname" : "",
"address1" : "No 36B",
"address2" : "",
"city" : "Coorg",
"state" : "KA",
"zip" : "",
"country" : "IN"
}
它甚至插入空白/空值。有没有办法指定在插入ML时忽略空白/ null的字段?这是我所期待的。
{
"firstname" : "Rajath4",
"address1" : "No 36B",
"city" : "Coorg",
"state" : "KA",
"country" : "IN"
}
以及如何为我们插入的每个文档维护一个自动生成的primary_key /序列?如果id已存在,则应合并/更新文档。
提前致谢。
您可以使用自定义转换来使用您自己的代码过滤数据。
此外,MLCP能够执行唯一的ID - 但是每次运行,而不是全局。但幸运的是,自定义转换功能允许您根据需要更改URI(因此您提供了使其独一无二的逻辑) - 解决了您的两个挑战。
DOC: https://docs.marklogic.com/guide/mlcp.pdf
相关章节: - 4.17 - 自定义变换 - 4.17.5 - Sample Transform(这里添加你的代码来过滤内容。在你的情况下,你可能更喜欢在javascript中调用一个函数。但这都是个人选择。) - 4.17.6 - 更改URI
有趣的说明4.17.6还包括解释如何更改文档类型。如果你是一个xslt人,你可能决定让MLCP提供XML,然后是一个模板来清除空元素,然后转换并保存到最后的json对象。
需要注意的是:如果你使用MLCP和fastload选项,那么我认为更改URI会否定fastload的好处(或类似的东西)