我正在尝试为每次会议更新整个数据库中的值。目前它看起来像这样:
{
"Referent" : null
"Participants" : [
{
"Email" : "mail@mail1.com",
"Present" : true
},
{
"Email" : "mail@mail2.com",
"Present" : false
},
{
"Email" : "mail@mail3.com",
"Present" : true
}
]
}
我希望这种情况发生:
if(meeting.Referent == null) {
foreach(var participant in meeting.Partipants) {
if(participant.Present) {
meeting.Referent = participant.Email;
}
}
}
显然上面的代码对于MongoCollection并不起作用,但我希望它有意义。我想为出席会议的随机(第一个或最后一个)参与者设置会议参与。
如何使用MongoCollection,我可以在Mongo Shell中运行它?
答案 0 :(得分:0)
哦好,我从来不知道你可以在Mongo Shell中键入Javascript。这就是我最终的结果:
var meetings = db.meetings.find({
Referent: null
}).toArray();
meetings.forEach(function(meeting) {
if(meeting.Participants.length > 0) {
meeting.Participants.forEach(function(participant) {
if(participant.Present) {
meeting.Referent = participant.Email;
}
});
if(meeting.Referent == null) {
meeting.Referent = meeting.Participants[0].Email;
}
db.meetings.updateOne({
"_id": meeting._id
}, {
$set: {"Referent": meeting.Referent }
});
}
});
完美地工作:)