C#使用MongoDB.Drivers驱动批量更新的写法问题

xujie825 2015-03-25 11:06:29
现有个需求,需要批量更新某个表的一批数据。
表名Organization
id Code
1 0102
2 010201
3 010202
4 01020201
要求把Code列以“0102”开头的数据更新成“0101”(Code列长度必须大于4位)
更新后的数据如下
id Code
1 0102
2 010101
3 010102
4 01010201


MS SQL的写法如下:

update Organization set Code='0101'+SUBSTRING(Code,5,LEN(Code)-4)
where SUBSTRING(Code,0,4)='0102' and LEN(Code)>4


现求使用MongoDb.Drivers的写法。

以下是我写了部分的语句。
  var query = Query.And(
Query.Matches("Code", new BsonRegularExpression(@"\b0102\d+\b"))
);

//定义更新文档
var update = new UpdateDocument {
{
"$set", new QueryDocument { { "Code", "" } }
}
};

//执行更新操作
Collection.Update(query, update, UpdateFlags.Multi, SafeMode.True);

在定义update这个参数的时候,实在不知道该在怎么写了。求各位大侠指导
不要写命令行语法,只求用MongoDB.Drivers驱动的写法
...全文
1172 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
asps5128 2017-02-18
  • 打赏
  • 举报
回复
关于C# driver的写法 这篇文章有写到 包含增修查改用法 参考下 http://forum.foxera.com/mongodb/topic/264/mongodb-net-driver-2-4-2-c-%E9%80%A3%E6%8E%A5%E6%96%B9%E5%BC%8F/7?un=cjl
eshujiushiwo 2015-05-27
  • 打赏
  • 举报
回复
额。很想有所帮助。。 但是非C#er。。。坐等大神
isprowler 2015-05-19
  • 打赏
  • 举报
回复
引用 5 楼 mrdexs 的回复:
最新的2.0驱动都是异步操作,处理起来有些麻烦
确实是异步,我也正发愁呢,不过写不影响 ,读就麻烦了。

	var client = new MongoClient("mongodb://root:root@192.168.1.114:27017");
	var database = client.GetDatabase("admin");
	var collection = database.GetCollection<BsonDocument>("test");
	var document = new BsonDocument
	{
		{ "name", "MongoDB" },
		{ "type", "Database" },
		{ "count", 1 },
		{ "info", new BsonDocument
				  {
					  { "x", 203 },
					  { "y", 102 }
				  }}
	};
	document = new BsonDocument
	{
		{ "Name", "test2" },
		{ "Num", 38 },
	};
	collection.InsertOneAsync(document);
	//await collection.InsertOneAsync(doc); //API 说要这样,不过我没有用异步,直接执行。后台可见新增的数据
读就苦逼了

	var documentQ = collection.Find(new BsonDocument()).FirstOrDefaultAsync();
	await Console.WriteLine(documentQ.ToString());
	//Console.WriteLine(documentQ.ToString());//直接这样报错,提示异步
有没有高人来解决一下啊?
mrdexs 2015-05-10
  • 打赏
  • 举报
回复
最新的2.0驱动都是异步操作,处理起来有些麻烦
wctmac123 2015-03-25
  • 打赏
  • 举报
回复
引用 2 楼 xujie825 的回复:
最新的3.0.1版本
以前用1.7的,现在C#最新的是 2.0了,发现很多方法都变了,可否问下 连接的新写法
wctmac123 2015-03-25
  • 打赏
  • 举报
回复
引用 2 楼 xujie825 的回复:
最新的3.0.1版本
不是,我问的是C#的驱动版本
xujie825 2015-03-25
  • 打赏
  • 举报
回复
最新的3.0.1版本
wctmac123 2015-03-25
  • 打赏
  • 举报
回复
问个问题,你是用mongodb C#哪个版本的驱动?

1,747

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧