1
我有一個用戶表中的MongoDB的列表,格式如下:MongoDB的查詢更新嵌套對象
{
"_id" : ObjectId("ID"),
"user" : {
"id" : "userId",
"info" : "user info",
"subscriptions" : [
{
"subName" : "sub1",
"frequency" : 1,
"contentId" : "contentId"
}
]
}
}
我想訂閱對象添加到該數組命名爲「訂閱」。這是我的代碼目前的樣子,它不起作用。在這種情況下,我的JSONParser工作並返回正確的數組。
QueryBuilder builder = QueryBuilder.start("user.id").is("userId");
DBCursor cursor = mongoClient.find(builder.get())
while (cursor.hasNext()){
DBObject user = cursor.next();
BasicDBList subscriptions = (BasicDBList)JSONParser.parseObject(user, "user.subscriptions");
subscriptions.add(subscriptionDBObject);
DBObject updateSubs = new BasicDBObject();
updateSubs.put("$set", new BasicDBObject("subscriptions" : subscriptions);
mongoClient.update(user, updateSubs);
}
這會運行,但用戶從不編輯,並且WriteResult返回「updatedExisting」:false。如果有人能告訴我我在這裏做錯了什麼,我將不勝感激。
感謝