如何在Marklogic JSON文档中插入多个三元组?
How do I insert more that one triple in a Marklogic JSON document?
我试图插入一些三元组,通过Javascript(查询控制台),到JSON文档的形式
declareUpdate();
xdmp.documentInsert('/aem/5/content/demo-spark/en_GB/automation_article.json',
{
"triple" : {
"subject" : "https://content.ea.com/aem/5/content/demo-spark/en_GB/automation_article2.json",
"predicate" : "https://content.ea.com/iri/author",
"object" : "jasonmoore"
},
"triple" : {
"subject" : "https://content.ea.com/aem/5/content/demo-spark/en_GB/automation_article2.json",
"predicate" : "https://content.ea.com/iri/id",
"object" : "automation_article2"
},
"triple" : {
"subject" : "https://content.ea.com/aem/5/content/demo-spark/en_GB/automation_article2.json",
"predicate" : "https://content.ea.com/iri/dateCreated",
"object" : "2015-08-14 09:38:10 GMT-7:00"
},
"content" : {
. . .
}
});
但是,当我查看新创建的文档时,只有最后一个三元组在那里,其他两个都不见了。
我需要做什么才能在同一文档中获得前两个三元组?
我试着添加这个作为注释,但是它不会用换行来格式化它。所以这只是Jose Hermosilla Rodrigo的答案的延伸。
由于不能有多个具有相同名称的对象键,所以使用数组:
declareUpdate();
xdmp.documentInsert('/aem/5/content/demo-spark/en_GB/automation_article.json',
{ "triples": [
{ "triple": {
"subject" : "https://content.ea.com/aem/5/content/demo-spark/en_GB/automation_article2.json",
"predicate" : "https://content.ea.com/iri/author",
"object" : "jasonmoore"
}},
{ "triple": {
"subject" : "https://content.ea.com/aem/5/content/demo-spark/en_GB/automation_article2.json",
"predicate" : "https://content.ea.com/iri/id",
"object" : "automation_article2"
}},
...
],
"content" : {
. . .
}
});
JSON对象存储键值对。键是唯一的
var obj = {
a : 'This is a property, but it will be overwritten',
a : 'Im really the value of a property'
};
console.log(obj);
也就是说:
var obj = {
a : 'This is a property, but it will be overwritten'
};
obj['a'] = 'Im really the value of a property';
console.log(obj);
现在你可以想象发生了什么:每次你试图插入键"triple"
都会覆盖它所包含的内容,并且最终存储的值是最后一个。
var myDbObject = {};
var obj = {
"triple" : {
"subject" : "https://content.ea.com/aem/5/content/demo-spark/en_GB/automation_article2.json",
"predicate" : "https://content.ea.com/iri/author",
"object" : "jasonmoore"
},
"triple" : {
"subject" : "https://content.ea.com/aem/5/content/demo-spark/en_GB/automation_article2.json",
"predicate" : "https://content.ea.com/iri/id",
"object" : "automation_article2"
},
"triple" : {
"subject" : "https://content.ea.com/aem/5/content/demo-spark/en_GB/automation_article2.json",
"predicate" : "https://content.ea.com/iri/dateCreated",
"object" : "2015-08-14 09:38:10 GMT-7:00"
}
};
Object.keys(obj).forEach(key=>{
myDbObject[key] = obj[key];
});
console.log(myDbObject);
相关文章:
- 从数组中删除三元组项
- JavaScript-在不影响索引的情况下将元素插入数组
- JavaScript:将变量插入数组
- JavaScript的循环问题,将值插入数组将不起作用
- 如何在一个页面上动态插入数组中的项
- 如何用javascript创建三维数组我想把数据插入数组中,这有助于我的代码
- 在sql中插入数组
- 在自动完成列表中插入数组值
- 通过多次调用按顺序将对象插入数组
- 在内部单击三元组设置值
- 将日期插入数组
- Javascript/Node - 使用 for 循环将对象插入数组
- 使用 Mongoose 和 Node 将数据插入数组时出错
- JavaScript发送变量,但插入数组PHP不能正常工作
- 如何使用输入字段将值插入数组
- 通过循环读取数据并将其插入数组
- Angular Js 在排序后卡在插入数组值
- 是否有一个 JavaScript 或 Lodash 函数可以轻松迭代成对或三元组
- 如何使用for循环从另一个元素中提取一个元素,并在JavaScript中插入数组
- 如何在Marklogic JSON文档中插入多个三元组?