Tag: mongodb .net driver

如何使用C#驱动程序检查MongoDB中是否存在集合?

在C#中是否有任何方法可以检查MongoDB数据库中是否已存在具有特定名称的集合?

C#Mongo FirstOrDefaultAsync挂起

使用2.0驱动程序,以下代码有时会挂起并永远不会返回。 public async Task GetFirst(FilterDefinition query) { return await GetCollection.Find(query).FirstOrDefaultAsync(); } 如果我首次亮相并在回程线上设置一个断点,一切都会恢复正常。 在shell中运行的查询是这样的: db.Customers.find({“Name” : /test$/i})

MongoDB LinQ“Select”方法是否真的只能检索字段的子集?

在互联网上搜索如何使用C#官方驱动程序(但使用LinQ作为基础架构)检索MongoDB中的字段子集,我发现如何在MongoDB shell中执行此操作。 // selecting only “field” of a collection db.collection.find( { field : ‘value’ }, { field: 1 } ); 然后,我在C#LinQ Tutorial中找到了Select方法,它相当于: collection.AsQueryable().Select(x => new { x.field }); 但是,该教程说该方法“ 用于从匹配的文档中投射新的结果类型 ”。 如何确保此方法仅检索字段的子集而不检索整个结果,然后仅选择子集到新对象中? 在检索结果之前,驱动程序是否会构建查询命令?

C#MongoDB.Driver GetServer已经过时了,现在怎么办?

来自mongoDB.Driver文档( http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-csharp-driver/ ) 获取对服务器对象的引用 要从客户端对象获取对服务器对象的引用,请写下: var server = client.GetServer(); 在最新版本中, GetServer方法已经消失,但文档尚未更新,我们现在使用了什么? 谢谢你的时间。

将对象反序列化为MongoDB C#Driver的接口

我正在开发一个使用MongoDB (带有C#驱动程序)和DDD的项目 。 我有一个类( 聚合 ),它具有一个类型是接口的属性。 在另一个类中,我实现了这个接口。 此类具有另一个属性,其类型是接口,并使用另一个实现的类进行设置。 下面的代码解释得更好: // Interfaces public interface IUser { Guid Id { get; set;} IPartner Partner{ get; set; } } public interface IPartner { IPhone Mobile { get; set; } } public interface IPhone { string number { get; set; } } // Implemented Classes public class User: IUser […]

C#mongo使用json字符串查询

这看起来很基本,我确信我只是忽略了某个地方的某个阶级或方法,但对于我的生活,我找不到它。 我有一个像这样的json字符串: { SendId: 4, “Events.Code” : { $all : [2], $nin : [3] } } 我可以在mongo shell中对find()或count()运行它,并得到我正在寻找的东西。 在C#中处理这个问题最简单的方法是什么? 这是我发现的: 我发现的方法都想要一个IMongoQuery ,它只是一个标记接口 BsonDocument有一个很好的Parse方法,但它没有实现IMongoQuery QueryDocumentinheritance自BsonDocument ,它确实实现了IMongoQuery ,但它没有自己的Parse方法,我无法将QueryDocument转换为BsonDocument Aggregation框架采用BsonDocument [],但有时我只想要一个简单的Find或Count操作 其中一些查询很大且很粗糙,我不想在Query构建器类中一次构建它们 如果数据库处理json文档,并且我可以在shell中运行这些东西,是不是有某种方法可以通过驱动程序运行它?

在MongoDB C#驱动程序中获取生成的脚本

我使用的是MongoDB.Driver 2.0.0。 有没有办法看到从linq到MongoDB生成的脚本? 例如,我的查询如下: IFindFluent findFluent = Collection.Find( x => hashValues.Contains(x.UrlHash) && x.ProductTopic == topicId); 如何(或更复杂的查询)在MongoDB shell中表示?

使用C#在mongoDB中存储具有多态值的字典

让我们说我们有一个关键值,它们的意义上是多态的。 考虑下一个示例项目: public class ToBeSerialized { [BsonId] public ObjectId MongoId; public IDictionary Dictionary; } public abstract class BaseType { } public class Type1 : BaseType { public string Value1; } public class Type2:BaseType { public string Value1; public string Value2; } internal class Program { public static void Main() { var objectToSave = new ToBeSerialized […]

MongoDB C#Driver中的BsonValue和自定义类

我正在尝试使用c#驱动程序在mongodb中使用$push进行更新查询。 Update.Push(…)方法需要一个字符串名称(没关系),并且BsonValue需要“推送”。 这是我遇到问题的地方。 我正在尝试将非简单类型推送到字段的数组。 例如: { $push : { “arrayfield” : { “a” : 7, “b” : 12 } } } 这在Mongo控制台中运行良好,但我无法弄清楚如何将我的对象变成BsonValue。 我已经尝试了BsonValue.Create(myObjectInstance)但这给了我一个错误,说.NET类型无法映射到BsonValue。 我错过了一些简单的事吗?

IAsyncCursor如何用于使用mongodb c#驱动程序进行迭代?

我正在尝试获取服务器中所有数据库的列表,并最终将它们打印出来(即将它们的名称用作string s)。 使用以前版本的c#驱动程序,我可以调用Server.GetDatabases() ,但它已被ListDatabasesAsync()替换。 返回值是IAsyncCursor ,我不知道如何处理它。 如何用这样的游标遍历数据库列表(或任何东西)?