作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
{
"_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": [{
"keyword 1": {
"dailyranks": [{
"2017-01-28": {
"rank": 1,
}
}]
}
}]
获得此结构后,您将使用 $push
运算符将新的 rank
插入嵌入式文档数组中。
如果您尝试替换整个嵌入数组,则将使用 $set
。
关于java - 如何在 MongoDB Java 驱动程序中将动态字段插入到文档中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41866974/
我是一名优秀的程序员,十分优秀!