Я храню этот вид дерева в монго:
{
"00010":
{
"1.1":[1,3,4],
"4.0":[2,5]
},
"01000":
{
"1.4":[2,4],
"3.5":[3,5]
}
}
Я бы вставил новый элемент в определенный список, если он существует.
Например, если новое значение:
"00010":
{
"1.1":[6]
}
Я бы хотел добиться этого:
{
"00010":
{
"1.1":[1,3,4,6],
"4.0":[2,5]
},
"01000":
{
"1.4":[2,4],
"3.5":[3,5]
}
}
Пока, если новое значение:
"00001":
{
"1.5":[2]
}
Я бы хотел добиться этого:
{
"00010":
{
"1.1":[1,3,4,6],
"4.0":[2,5]
},
"01000":
{
"1.4":[2,4],
"3.5":[3,5]
},
"00001":
{
"1.5":[2]
}
}
и т. Д.
Я пытаюсь использовать стандартный MongoUpdateBolt (), но проблема заключается в запросе и операции обновления. Я изменил метод execute ():
public void execute(Tuple tuple) {
try{
String idTuple = (String) tuple.getValue(0);
String attrs = (String) tuple.getValue(1);
String value = (String) tuple.getValue(2);
Document document = new Document();
List<String> tupleList = new ArrayList<String>();
tupleList.add(idTuple);
document.append("$push", tupleList);
//get query filter
Bson filter = queryCreator.createFilter(tuple);
Bson filter1 = Filters.and(Filters.eq("_id", attrs),
Filters.exists(value));
mongoClient.update(filter1, document, upsert);
this.collector.ack(tuple);
} catch (Exception e) {
this.collector.reportError(e);
this.collector.fail(tuple);
}
}
но это решение не работает. Кто-нибудь может мне помочь?