[英]How to Insert Dynamic Fields to a Document In MongoDB Java Driver
{
"_id" : ObjectId("5888ae5f1495062544ac7951"),
"site" : "gfhfh",
"keywords" : {
"keyword 1" : {
"dailyranks" : {
"2017-01-28" : {
"rank" : 1,
}
**Dynamic data should add here by date **
}
}
}
}
我试图按日期插入关键字等级。 我想每天添加关键字排名。 但它不会只插入更新日期和值。 我在Java中使用了以下代码。
for (DBObject dbo : result) {
DBObject keywordlist = (DBObject) dbo.get("keywords");
BasicDBObject a = new BasicDBObject();
for (String keyword : keywordlist.keySet()) {
DBObject rank = getRank();
BasicDBObject rankdate = new BasicDBObject(date, rank);
BasicDBObject aa = new BasicDBObject("dailyranks", rankdate);
a.append(keyword, aa);
}
coll.update(dbo, new BasicDBObject("$set", new BasicDBObject("keywords", a)), true, false);
}
看来您需要一个用于keywords
和dailyranks
的嵌入式数组。
"keywords": [{
"keyword 1": {
"dailyranks": [{
"2017-01-28": {
"rank": 1,
}
}]
}
}]
具有此结构后,将使用$push
运算符将新rank
插入嵌入式doc数组中。
如果您尝试替换整个嵌入式阵列,则将使用$set
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.