認爲這將是非常簡單的增加一個字段在MongoDB中,但我的價值保持不變(0)。你如何使用C#
我想要做的是,當用戶收到他們沒有閱讀,然後再遞減,當他們有一個消息遞增我UnreadMessages場。所以我認爲這樣的代碼會工作:
var userHelper = new MongoHelper<User>();
//increment
userHelper.Collection.Update(Query.EQ("Id", userId.ToId()), Update.Inc("UnreadMessages", 1));
//decrement
userHelper.Collection.Update(Query.EQ("Id", userId.ToId()), Update.Inc("UnreadMessages", -1));
運行這些後沒有錯誤引發,但值也不會改變。而且沒有我沒有運行一前一後爲上面的代碼可以被解釋:)
更新
這裏是我的助手類:
public class MongoHelper<T> : Sandbox.Services.IMongoHelper<T> where T : class
{
public MongoCollection<T> Collection { get; private set; }
public MongoHelper()
{
var con = new MongoConnectionStringBuilder(ConfigurationManager.ConnectionStrings["MongoDB"].ConnectionString);
var server = MongoServer.Create(con);
var db = server.GetDatabase(con.DatabaseName);
Collection = db.GetCollection<T>(typeof(T).Name.ToLower());
}
}
,並感謝Travis的答案,我能夠把這個關掉:
MongoHelper<UserDocument> userHelper = new MongoHelper<UserDocument>();
var user = userHelper.Collection.FindAndModify(Query.EQ("Username", "a"), SortBy.Null, Update.Inc("MessageCount", 1), true).GetModifiedDocumentAs<UserDocument>();
嘗試在外殼。 –
降價的原因是什麼?我做錯了什麼? – rball
@SergioTulentsev我會嘗試,但我怕我真的很新MONGO所以我學習,我要去。 – rball