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。如果有人能告诉我我在这里做错了什么,我将不胜感激。
感谢