- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
public async Task SomeWork()
{
Debug.WriteLine("SomeWork for User : " + Context.User.Identity.Name);
var userProfile = await UserProfileCollection.Find(u => u._id == Context.User.Identity.Name).FirstOrDefaultAsync();
userProfile.SuccessfullConnect = true; // currently false
var up = await UserProfileCollection.FindOneAndReplaceAsync(u => u._id == userProfile._id, userProfile);
Debug.WriteLine(ObjectDumper.Dump(userProfile));
Debug.WriteLine(ObjectDumper.Dump(up));
Debug.WriteLine("Saved SomeWork for User : " + Context.User.Identity.Name);
}
下面是调试输出。我的文件没有被替换。检查成功连接变量它仍然是错误的。我在服务器上检查过文件也没有被替换。有时它工作,有时它不工作。
SomeWork for User : +919933221101
{TestSignalR_Server.Models.UserProfile}
_id: "+919933221101"
...
SuccessfullConnect: True
...
{TestSignalR_Server.Models.UserProfile}
_id: "+919933221101"
...
SuccessfullConnect: False
...
Saved SomeWork for User : +919933221101
最佳答案
方法 FindOneAndReplaceAsync
应该可以正常工作。
但默认情况下,此方法返回原始文档。您可以将 ReturnDocument
更改为 ReturnDocument.After
以查看更改后的文档。
var options = new FindOneAndReplaceOptions<Profile>
{
ReturnDocument = ReturnDocument.After
};
var up = await collection.FindOneAndReplaceAsync<Profile>(u => u._id == userProfile._id, userProfile, options);
关于C# Mongodb FindOneAndReplace 或 ReplaceOne 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40929600/
我的应用从远程服务器接收数据,并调用 ReplaceOne 来插入新文档或使用 Upsert = true 的给定键替换现有文档。 ( key 使用 * 进行匿名化)该代码仅在单个线程中运行。 但是,
我在使用 MongoDB 的 C# 驱动程序时遇到了一些奇怪的行为。我正在尝试执行替换多个字段的更新,因此我正在使用 API 中的 ReplaceOneAsync() 方法。我与任何集合的连接都是使用
我正在使用 Mongo Go 适配器:github.com/mongodb/mongo-go-driver/ 我正在尝试不同的模式,但没有一个适合我。 //引用结构 type userbase str
public async Task SomeWork() { Debug.WriteLine("SomeWork for User : " + Context.
查看 mongodb 文档,我读到 FindOneAndReplace 将是一个原子操作。但我不明白的是为什么 ReplaceOne 不会是原子的?如果存在差异,为什么还要使用 ReplaceOne?
MongoDB 批量操作有两种选择: Bulk.find.updateOne() Adds a single document update operation to a bulk operation
我是一名优秀的程序员,十分优秀!