Mongodb c# changestream ,如何使用 Array 变量而不是在 [] in $in , in filter 中定义值
Mongodb c# changestream , How can I use Array variable instead of defining values in [] in $in , in filter
我正在开发一个创建多个更改流的程序,所以我正在努力在单个流中做同样的事情,而不是创建多个手表,
我的 sessionValues 包含多个 ID,
string[] sessionValues = list.ToArray();
filter = "{ $and: [ { operationType: 'insert' }, " + "{ 'fullDocument.appId' : {$in:['" + sessionValues + "']}} ] }";
var pipeline = new EmptyPipelineDefinition<ChangeStreamDocument<BsonDocument>>().Match(filter);
// var changeStream = Collection.Watch(pipeline, options).ToEnumerable().GetEnumerator();
DBObjects.DB.WriteLog(DBObjects.LogLevel.Info, "Log data change stream is now configured");
var cursor = Collection.Watch(pipeline, options);
flag = true;
var enumerator = cursor.ToEnumerable().GetEnumerator();
我想使用 $in 在我的 sessionValues 变量中查找,而不是以传统的 [] 方式定义值,因为我无法定义,因为我在我的数组中添加值。并希望 $in 在数组中查找。
因为我的格式是 bson,所以我设法做到了,
string sessionValues = "";
foreach (var item in array)
{
sessionValues += "'" + item + "',";
}
filter = "{ $and: [ { operationType: 'insert' }, " + "{ 'fullDocument.appId' : {$in:[" + sessionValues + "]}} ] }";
上述方法对我来说非常有效,列表中的值正在正确获取。
我正在开发一个创建多个更改流的程序,所以我正在努力在单个流中做同样的事情,而不是创建多个手表, 我的 sessionValues 包含多个 ID,
string[] sessionValues = list.ToArray();
filter = "{ $and: [ { operationType: 'insert' }, " + "{ 'fullDocument.appId' : {$in:['" + sessionValues + "']}} ] }";
var pipeline = new EmptyPipelineDefinition<ChangeStreamDocument<BsonDocument>>().Match(filter);
// var changeStream = Collection.Watch(pipeline, options).ToEnumerable().GetEnumerator();
DBObjects.DB.WriteLog(DBObjects.LogLevel.Info, "Log data change stream is now configured");
var cursor = Collection.Watch(pipeline, options);
flag = true;
var enumerator = cursor.ToEnumerable().GetEnumerator();
我想使用 $in 在我的 sessionValues 变量中查找,而不是以传统的 [] 方式定义值,因为我无法定义,因为我在我的数组中添加值。并希望 $in 在数组中查找。
因为我的格式是 bson,所以我设法做到了,
string sessionValues = "";
foreach (var item in array)
{
sessionValues += "'" + item + "',";
}
filter = "{ $and: [ { operationType: 'insert' }, " + "{ 'fullDocument.appId' : {$in:[" + sessionValues + "]}} ] }";
上述方法对我来说非常有效,列表中的值正在正确获取。