草庐IT

LINQ to MongoDB : . Any with a Predicate

我在MongoDB中有一个S文档集合。每个S都有一个UserPermission对象的集合,每个对象都有一个UserId属性。我想选择所有具有UserPermission和特定UserId的S文档:returncollection.Where(s=>s.UserPermissions.Any(up=>up.UserId==userIdString)).ToList();我收到一条错误消息,告诉我不支持带有谓词的.Any。MongoDB文档说:“您通常可以通过在投影前放置等效的where子句来重写此类查询(在这种情况下您可以删除投影)。”这是什么意思?知道如何更改我的查询以绕过此限制吗?

c# - Mongodb C# 查询嵌套文档

我将mongodb与c#驱动程序一起使用。我有一个包含子文档的集合publicclassEntityA{publicstringName{get;set;}publicstringDescription{get;set;}publicListBItems{get;set;}}publicclassEntityB{publicstringBName{get;set;}publicstringBDesc{get;set;}}我想创建查询并获取EntityB项目的列表fromainmycollectionwhereBItems.Any(k=>k.BName==entity.Name)sele

c# - 如何使用 MongoDB C# Driver Aggregate 获取 2 个字段上具有特定值的最新项目?

感谢您的光临:)基本上,我有一个MongoDB,其中包含具有以下属性的文档集合:Stringgroup;Stringkey;Stringvalue;DateTimetimestamp;我想获取所有最新文档的列表,这些文档具有唯一(不同)的组和键组合。存在组和键相同但值不同的文档;我只想要具有最新时间戳的那个。如果我有:文档A:组=2;key=东西;值=123;时间戳=20160621;文档B:组=2;key=东西;值=888;时间戳=20160622;我只想在查询中检索文档B(值为888)。这是我到目前为止得到的:varaggregate=collection.Aggregate().

c# - 使用 LINQ 的 MongoDB C# 聚合

我有一个包含这些字段的mongo对象:DateTimeTimeStamp;floatValue;如何在C#中使用LINQ获取聚合管道,以获取特定时间戳范围内的最小值、最大值和平均值?我看过几个聚合示例,但我不太明白。举一个像这样的简单案例的例子肯定(希望)让我理解它。 最佳答案 您可以使用转换为聚合框架语法的LINQ语法。假设您有以下Model类:publicclassModel{publicDateTimeTimestamp{get;set;}publicfloatValue{get;set;}}您可以使用where来指定时间戳范

Linq到SQL左加入需要附加的空检查

以下查询正常工作,但缺少一个功能。DepartmentID字段是无效的,在迭代用户时,我只想获取没有dectormentID的用户fromdocumentin_documentRepository.GetAll()fromdocumentShareindocument.DocumentShareswheredocumentShare.UserId==input.SharedUserIdjoinsUin_userRepository.GetAll()ondocumentShare.UserId/*AdditionalnullcheckshouldbeherelikedocumentShare.D

.net - 对从 MongoDB 获取的数据库列表进行排序

尝试编码Client=newMongoClient($"mongodb://{connectionParameters}");Listnames=Client.ListDatabases().ToList().Select(x=>new{name=x["name"].ToString()}).OrderBy(x=>x.name);但是编译器显示错误Cannotimplicitlyconverttype'System.Linq.IOrderedEnumerable'to'System.Collections.Generic.List'.Anexplicitconversionexists

.net - 我们可以将 MongoDB 与我们过去用于关系数据库(例如 linq2sql、 Entity Framework 、subsonic 等)的 ORM 一起使用吗?

我想知道是否可以根据您的经验使用我们以前使用.netORM和nosql数据库(例如MongoDB)的经验。另外,如果您知道执行此操作的样本,请在您的回答中提及。 最佳答案 您可以重用您的LINQ技能,因为.net和MongoDB之间的两个提供程序都支持LINQ。norm驱动程序和mongodb-csharp-driver都支持LINQ查询。参见http://www.mongodb.org/display/DOCS/C+Sharp+Language+Center在大多数情况下,将对象映射到文档比将对象映射到一组表更容易。但是您不能重用

c# - MongoDB C# 驱动程序获取速度快(1) 但速度慢(2)

我第一次尝试使用MongoDBC#驱动程序,我发现了一些奇怪的性能结果。当我使用ordering和.Take(1)查询包含300万条记录的集合时,响应几乎是即时的(3毫秒)。但是当我.Take(2)处理同一个查询时,它最多需要10秒。正确的索引已经到位,它是一个非常简单的测试数据集合。MongoClientclient=newMongoClient();MongoServerserver=client.GetServer();vardatabase=server.GetDatabase("db_name");varcollection=database.GetCollection("c

c# - 获取总结果数并允许在与 MongoDB 的同一查询中进行分页

我这样设置查询以允许分页。虽然这有效,但我基本上必须运行相同的查询两次以获得查询的总匹配结果并允许分页。有什么办法可以将其组合成一个查询吗?publicSearchResultGetResults(){//queryisbuiltelsewherevartotalResults=(fromiinCollection.Find(query)selecti).Count();varresults=(fromiinCollection.Find(query)selecti).Skip(recordsToSkip).Take(recordsToTake).ToList();//SearchRe

c# - SQL Server 与 MongoDB : Speed test?

MongoDB:varx=nosql.GetRecords(p=>p._Data=="rawhix",0,12222);//ICursorGetRecords(expression,skip,limit);SQL:SqlDataReaderdr=SqlHelper.ExecuteReader("SelectTop(12222)*FromNewsFeedWHERE_Data='dddd'");MongoDB包含1000000条记录,这在SQL中是相同的。数据存储如下:Id=1,_Data=1abcId=2,_Data=2bc...etc事件类:ClassEvent=>intId=>str