问题标签 [fluent-mongo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - MongoDb 使用过滤/排序查询嵌入式集合
让我们想象一个普通的博客引擎(仅作为示例)。该模型将包含带有嵌入式评论“集合”的帖子集合。
现在,我只需要获取 10 条最近的评论以及我的帖子数据。
- 这样做的最佳方法是什么?
- 这是一个有价值的优化吗?(除了减少网络流量)
PS 我使用官方 C# 驱动程序 + fluent-mongo 但我可以放弃 linq 有一个好的理由。
c# - mongodb(FluentMongo)中类别中的产品数量
我正在尝试解决 mongodb 的性能问题,其中一个问题是系统在每次页面加载时读取每个类别中的产品数量。项目使用 C# 和 FluentMongo 访问数据库。(这不是我的主意:)
理想情况下,我想获得这样的 categoryid :将产品计数作为一个请求。
每个产品可能属于多个类别。
我试图改进的代码是:
它被执行了数百次....
mongodb - FluentMongo 突然抛出错误
我正在使用 FluentMongo 和 MongoDBCSharpDriver。我的代码在一段时间内运行良好,但在更新了 MongoCSharpDriver 后,我现在在尝试查询数据库时不断收到此错误:
“鉴别器只能为类注册,不能为接口 MyLib.Services.IRepoData 注册。”
该接口IRepoData
只是我用于保存到 MongoDB 的所有对象的接口。它只是为所有东西定义了 _id。这是中断的行:
任何人都可以对此有所了解吗?如果我只使用.SingleOrDefault()
没有 lambda,那么它可以正常工作,它传递了一个破坏它的 lambda。
编辑
如果这有帮助...
c# - 运行fluent-mongo时如何获得“真实”的mongo查询
运行我的应用程序时,我必须写入使用的屏幕原始查询。
是否有任何方法/扩展方法可用,从中获得:
类似于:
mongodb - 使用 FluentMongo 删除和更新文档
我想知道是否有人有一种干净的方法来使用 FluentMongo 处理删除和更新文档?
我正在使用 FluentMongo 创建一个存储库层;但是,无法删除或更新文档被证明是很麻烦的。也许我错过了在保持适当的存储库模式的同时处理这个问题的方法?
谢谢你。
mongodb - Mongo查询获取孩子
我正在使用流利的mongo。
我有一个实体
ListItem 是另一个实体
所以主实体 SomeList 有 List,实体 ListItem 也有 List。
我想要一个 mongo 查询来从 ListItem 获取列表。
我正在使用以下查询
当我执行 Query.EQ(“ListItems.ListItemId”, listItemId) 时,它给出了主 SomeList 实体。我再次在下一行应用 where 子句。这是我不想要的。
mongodb - 使用动态 linq 和流利的 mongo 时按多个值分组会导致格式错误的 map-reduce emit 语句
我正在使用动态链接来运行 mapreduce 查询,并且在尝试按多个值分组时遇到了问题。看一下这个:
这工作正常:
var query = contentDeliveryAggregates.AsQueryable().Where("_id.CId == 1 && _id.CdaId == 1 && _id.From >= @0 && _id.To <= @1", reportRequest.FromDate, reportRequest.ToDate )。GroupBy(“_id.CdaId”,“它”)。Select("new(key,Sum(value.BW) as Bandwidth)");
这不会:
var query = contentDeliveryAggregates.AsQueryable().Where("_id.CId == 1 && _id.CdaId == 1 && _id.From >= @0 && _id.To <= @1", reportRequest.FromDate, reportRequest.ToDate )。GroupBy(“新(_id.CdaId,_id.CId)”,“它”)。Select("new(key,Sum(value.BW) as Bandwidth)");
linq 是有效的(它编译得很好),但我得到一个运行时错误,因为 mapreduce 语句格式错误。这是第二个查询中的 map-reduce 语句:
{ "mapreduce" : "Aggregates", "map" : { "$code" : "function() { emit({}this._id.CdaIdthis.id.CId , {\" $f0\": this.value. BW}); }" }, "reduce" : { "$code" : "function(key, values) {var $f0 = 0;values.forEach(function(doc) { $f0 += doc. $f0; });return { \" $f0\": _$f0};}" }, "查询" : { "_id.CId" : 1, "_id.CdaId" : 1, "_id.From" : { " $gte" : ISODate("2012-02-01T08:00:00Z") }, " id.To" : { "$lte" : ISODate("2012-02-11T08:00:00Z") } }, " finalize" : { "$code" : "function(key, value) { return { \" $f0\": value._$f0};}" }, "limit" :0,“出”:{“内联”:1 } }
查看那个发出语句;搞砸了……
我做错了什么还是流利的驱动程序中的错误?
c# - MongoDB C# 驱动程序使用 LINQ 引发异常
我正在构建一个使用 Mongo 和官方 C# 驱动程序的应用程序。使用接口和泛型类型约束时我遇到了一个奇怪的问题。考虑以下:
除了调用 Get(...) 之外,一切正常。使用官方驱动程序,我从SelectQuery.cs var memberSerializationInfo = containingSerializationInfo.Serializer.GetMemberSerializationInfo(memberName);
中函数的调用中获得空引用异常。private BsonSerializationInfo GetSerializationInfoMember(IBsonSerializer serializer, MemberExpression memberExpression)
如果我切换到使用 FluentMongo for LINQ,我会收到一条消息说
“鉴别器只能为类注册,不能为接口 MyLib.Services.IRepoData 注册。”
这和这个人基本一样:
我知道 Mongo 驱动程序在抱怨,因为它不知道 IMongoObject 是什么。我不明白为什么 where 调用中的表达式将“o”视为 IMongoObject 类型而不是 MongoObject 类型(通过调试器确认这是正在发生的事情),就是这样。
如果我改用抽象基类,一切正常。我不这样做,因为不是所有的“MongoObjects”
谢谢
mongodb - Fluentd 未将解析后的日志发送到 Mongo
我正在使用 Fluentd 解析日志并将解析后的日志存储在 MongoDB 中。
我的应用程序正在生成以下日志:
Fluentd 正在正确解析日志,但不是时间(我猜)。因为 MongoDB 无法存储解析后的内容。它甚至没有反映在解析的日志中。下面是解析结果:
但是,我没有看到这里解析的时间。并怀疑这种行为,fluent-plugin-Mongo 写道:
[ warn ]: #0 从 v0.8 开始,无效记录检测将被删除,因为 Mongo 驱动程序 v2.x 和 API 规范不提供它。您可能会丢失无效记录,因此您不应将此类记录发送到 Mongo 插件
但是,当使用fluentular时,它会正确解析。这是我的尾部配置:
mongo插件配置如下:
任何帮助表示赞赏。谢谢!