MongoDBと最新の10gen C#ドライバ(CSharpDriver-1.3.1.4349)を使用して、「インプレース」アップデートを行い、結果で影響を受けるドキュメントの数を取得しようとしています。更新後にSafeModeResultがnullになる
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;
}
結果は何らかの理由でnullです。私が間違ってやっているか、これはC#のドライバのバグが何であるかを
db.Listing.update({ State: state.Abbreviation, IsActive: true, UpdateDate: { $lt: expiredDate } }, { $set: { IsActive: false } }, false, true);
var numRows = db.getLastErrorObj().n;
任意のアイデア:私は、コンソールからこれをやっていたならば、私はこれを行うことによって達成された行の数を得ることができますか?
感謝を!私はセーフモードがどのように機能するのか知っていますが、接続がデフォルトでセーフモードを使用すると誤って想定していました。 – Justin
私は同じ問題を抱えていましたが、現在のドライバはgetLastErrorを明示的に使用しているときに認証に問題があることに注意してください。 prob()が固定されるまで、代わりにSafeMode.Trueを使用することを推奨するRobert(dev at 10gen) https://jira.mongodb.org/browse/CSHARP-390を参照してください。 – sambomartin