【发布时间】:2011-03-02 08:48:18
【问题描述】:
我正在尝试想出一种方法来更新 mongo 中对象数组中的值。我有一个看起来像的集合
[
{ CourseName: '',
Sessions: [
{
_id: null, //oops I didn't set this in the import
Name: 'blah',
Location: 'moon'
}]
}
]
现在我需要设置 _id 字段。我尝试了记录在案的方法
db.Course.update({'Sessions._id': null}, {$set:{'Sessions.$._id': ObjectId()}}, false, true)
但是我遇到了这个错误http://jira.mongodb.org/browse/SERVER-1055,这意味着我做不到。是否有一些语法可以让我只遍历集合并手动更新每条记录?我尝试了一些类似的东西
db.Course.find().forEach(
function(course)
{
course.Sessions.forEach(function(session)
{
session._id=ObjectId();
course.Save(session); //Don't know how to save a single object
});
});
但他们没有工作。我正在寻找某种方法来更新每个会话中的值。
【问题讨论】:
标签: mongodb