Используя MongoDB и последний драйвер 10gen C # (CSharpDriver-1.3.1.4349), я пытаюсь выполнить обновление «на месте» и вернуть количество документов, полученных в результате.
public static long SaveListings(string state, bool isActive, DateTime updateDate)
{
var result = Collection().Update(
Query.And(
Query.EQ("State", state),
Query.And(
Query.EQ("IsActive", isActive),
Query.LT("UpdateDate", updateDate))),
Update.Set("IsActive", false), UpdateFlags.Multi);
return result != null ? result.DocumentsAffected : -1;
}
По какой-то причине результат нулевой.Если бы я делал это из консоли, я мог бы получить количество строк, выполнив это:
db.Listing.update( { State: state.Abbreviation, IsActive: true, UpdateDate: { $lt: expiredDate } }, { $set: { IsActive: false } }, false, true);
var numRows = db.getLastErrorObj().n;
Есть идеи, что я делаю неправильно, или это ошибка в драйвере C #?