MongoDB C# 从组中获取最新的文档
我有一组假装付款的状态,每个都有付款ID. 我想获得每个付款ID的最新状态.我已经创建了一些虚拟数据,然后尝试查询它.我已经走了很远: [Test] public void GetPaymentLatestStatuses() { var client = new TestMongoClient(); var database = client.GetDatabase("payments"); var paymentRequestsCollection = database.GetCollection("paymentRequests"); var statusesCollection = database.GetCollection("statuses"); var payment = new BsonDocument { { "amount", RANDOM.Next(
0 2024-04-15
编程技术问答社区
Mongodb C#驱动只返回数组中匹配的子文件
我有以这种格式的文档: { _id: ..., myArray: [{other: stuff}, {other: stuff}, ...], ... } 我想找到匹配某些事物的元素,例如_id或字段从myArray>. 我想返回文档,但是使用过滤的MyArray,其中只有匹配的子插件. 我尝试进行投影,并包括这样的匹配元素: _mongoContext.myDocument .Find(x => x.id == id & x.myArray.Any(y => myList.Contains(t.other))) .Project(Builders.Projection.Include("myArray.$")) 我认为,这只能返回myArray而不是所有文档中匹配的第一个元素,这不是我想要的(我想要匹配查询的所有sub-document comption concement conc
0 2024-04-12
编程技术问答社区
用C#计算嵌套对象的数量
我正在使用ASP.NET Core 2.0 Web API开发软件.我需要计算集合中某些字段的计数. 我在MongoDB的集合中有数据如下.我需要找到我的收藏中有多少个标签以及有多少个传感器.特定的端点具有多标签,每个标签都有多传感器. { "_id" : ObjectId("5aef51dfaf42ea1b70d0c4db"), "EndpointId" : "89799bcc-e86f-4c8a-b340-8b5ed53caf83", "DateTime" : ISODate("2018-05-06T19:05:02.666Z"), "Url" : "test", "Tags" : [ { "Uid" : "C1:3D:CA:D4:45:11", "Type" : 1, "DateTime" : ISODate("2018-05-06
0 2024-04-12
编程技术问答社区
用C#聚合$lookup
我有以下mongodb查询工作: db.Entity.aggregate( [ { "$match":{"Id": "12345"} }, { "$lookup": { "from": "OtherCollection", "localField": "otherCollectionId", "foreignField": "Id", "as": "ent" } }, { "$project": { "Name": 1, "Date": 1, "OtherObject": {
2 2024-04-11
编程技术问答社区
使用聚合和$组查询时出现内存溢出错误
我有一个名为" allvoice"的集合,该集合具有以下结构: { "_id" : ObjectId("612599bb1cff80e6fc5cbf38"), "subscriber_id" : "e3365edb9c781a561107242a81c1a92b4269ef9a", "callednumber" : "559198e6f8814773551a457e53a614d603f9deab", "originaltimestamp" : "20200113033803", "duration" : "13", "maincost" : "255.6", "type" : "Internal", "type_network" : "local_network", "month" : "202001" } 以"原始Timestamp"字段是当天数据的交易期,为了使白天查询大数据的查询更加容易,我按日期使
2 2024-03-30
编程技术问答社区
Mongo聚合框架匹配给定的_id
我的模型: const scheduleTaskSchema = new Schema({ activity: { type: Object, required: true }, date: { type: Date, required: true }, crew: Object, vehicle: Object, pickups: Array, details: String, }); const ScheduleTaskModel = mongoose.model("schedule_task", scheduleTaskSchema), 和此聚合管道: let aggregation = [ { $sort: { "pickups.0.time": 1, }, }, { $group: { _id: "$date", tasks:
2 2024-03-26
编程技术问答社区
如何从MongoDB的hashmap中获取平均值?
我在Mongo数据库中有一个时间数据.每个文档等于一分钟,并包含60秒作为对象,每个对象都有值.如何在一分钟内获得所有秒的平均值? 看起来像这样的文档: { "_id" : ObjectId("55575e4062771c26ec5f2287"), "timestamp" : "2015-05-16T18:12:00.000Z", "values" : { "0" : "26.17", "1" : "26.17", "2" : "26.17", ... "58" : "24.71", "59" : "25.20" } } 解决方案 您可以在这里采用两种方法: 更改架构并使用 聚合框架/strong>通过使用强> 操作员或 应用 让我们看一下第一个选项.当前,由于values subdocument中的动态键,架构将无法使用聚合框架.有
6 2024-03-21
编程技术问答社区
计算嵌入文件/数组中字段的平均值
我想通过数组额定值内的评分字段来计算此对象的额定值_average字段.您能帮我了解如何使用$ avg使用聚合吗? { "title": "The Hobbit", "rating_average": "???", "ratings": [ { "title": "best book ever", "rating": 5 }, { "title": "good book", "rating": 3.5 } ] } 解决方案 聚合框架在mongodb 3.4中 $reduce $reduce 有效地计算总数的操作员无需额外的管道.考虑将其用作表达式以返回 总收视率并使用 .与 $divide 如公式average = total ratings/number of ratings中:
2 2024-03-21
编程技术问答社区
计算一个mongodb文档的平均价值
假设我有这样的集合: { _id: 1, city: "New York", state: "NY", murders: 328 } { _id: 2, city: "Los Angeles", state: "CA", murders: 328 } ... 该系列向我们展示了美国所有城市的谋杀案数量.我想计算全国的平均谋杀案.我试图使用 $group: db.murders.aggregate([{$group: {_id:"$state", pop: {$avg:"$murders"} } }]) ,但结果我会逐个谋杀: { "_id" : "NY", "murders" : 200 } { "_id" : "NJ", "murders" : 150 } { "_id" : "CA", "murders" : 230 } { "_id" : "CT", "murders" : 120 } 我的问题是,如何对此结
0 2024-03-21
编程技术问答社区
为什么在使用async await进行多次调用后仍然得到空的响应?
这是简单的节点路由,其中​​调用异步api. 循环后需要的是return data.但是它正在返回空白对象. try { const array = ["brunch", "lunch", "crunch"] const data = {} array.map(async(d) => { const venue = await Venue.find({ "category": { "$in": [d] }}) data[d] = venue }) return data } catch(err) { throw err } 请帮助我实现这一目标 解决方案 有一种更好的方法可以通过mongoDB获得所需的结果,而无需循环,使用聚合框架,您可以在其中运行以下管道,该管道使用 try { const array = ["brunch", "lunch", "crunch"] const facet = array.reduce((
2 2024-03-18
编程技术问答社区
NodeJS在for-loop中的多个async-functions之后的回调
我从mongoDB中获取文档,其中包含一个文档的评论.在评论中是用户写评论的用户的_id. 我现在需要根据用户的_id获取用户名,但我遇到了几个问题. 我有以下代码,显然是行不通的,但我希望它可以使您了解我要完成的工作. //MORE CODE... (No need to show this here, just a promise, some try catch and so on) let article = await Article.findOne({_id:articleid}) for(var i = 0; i{ article.comment[i].username = user.username })
4 2024-03-17
编程技术问答社区
使用聚合法将一个值添加到记录中
我的文档样本 { _id: "bmasndvhjbcw", name: "lucas", occupation: "scientist", present_working:true, age: 55, location: "texas", }, { _id: "bmasndvhjbcx", name: "mark", occupation: "scientist", age: 45, present_working:true, location: "texas", }, { _id: "bmasndvhjbca", name: "stuart", occupation: "lab assistant", age: 25, location: "texas", }, { _id: "bmasndvhjbcq",
2 2024-03-07
编程技术问答社区
根据位置百分比进行分组和汇总 MongoDb 聚合
我必须按MyArray的值进行分组,并以不同的归因为总计,例如,对于此文档,我们应该进行分发以使数组的第一个值的总数为40%,而40% (2/5)最后的总和为20%(1/5),而其他人共享oportory: /* 1 */ { "_id" : ObjectId("5a535c48a4d86ed94a7e8618"), "total" : 5.8, "myArray" : [ { "value" : "a" 2/5 (40%) }, { "value" : "b 1/20 (20% /4) }, { "value" : "a" 1/20 (20% / 4) }, { "value" : "c" 1/20 (20% / 4)
10 2024-03-07
编程技术问答社区
Mongodb聚合查询,比较字符串格式的时间
我在DB中保存数据如下: 收集名称:电影: [ {id:1, name:"abch", start:"12:00 pm", end:"03:00 pm"}, {id:2, name:"Annabelle", start:"08:30 am", end:"10:00 am"}, {id:3, name:"Spider Man homecoming", start:"11:30 am", end:"03:00 pm"}, {id:4, name:"Grudge", start:"10:00 pm", end"00:00 am"} ] 我在电影的启动时间和结束时间上使用过滤器,例如开始:" 12:00 pm"结局:" 00:00 AM" req.query = { starting:"12:00 pm", ending:"00:00 am" } 我想要start和end时间介于req.query = { starting:"12:00 pm", end
4 2024-03-07
编程技术问答社区
如何在mongoDB中对嵌套数组上的项目进行耦合?
灵感来自另一个 >我正在寻找一种在嵌套数组中求发的常见方法,因此第一个项目将与第二个项目结合在一起,第三项将与第四项结合. . 假设我的文档看起来像: { _id: ObjectId("5a934e000102030405000000"), events: [ { status: 0, timestamp: ISODate("2022-05-29T13:26:00Z") }, { status: 8, timestamp: ISODate("2022-05-29T14:41:00Z") }, { status: 4, timestamp: ISODate("2022-05-31T10:13:00Z") }, { status: 3, timestam
8 2024-03-07
编程技术问答社区
在MongoDB中,将多个文件合并为一个文件,并保留两个文件字段
我在mobgodb中有多个文档如何对" ABC"和" XYZ"的小组进行操作并获取一个文档.请参阅"输出文档". 需要与(文档1 U文件2)和(文件1 U文件3)进行联合. u =联合 文档1 { "data": { "Inside_data": { "project": { "abc": { "alpha": 4, "beta" : 45 }, "xyz": { "alpha": 214, "beta" : 431 } } } } } 文档2 "Deal": { "name": "abc", "url" : "www.abc.com, "email": [ "
4 2024-03-07
编程技术问答社区
在月度和年度层面上进行汇总,也可以在MongoDB中找到平均值。
说明:我想找到2018,2021和2020值的平均值.年和月将使用查询参数通过. 另外,如果没有完整的年度,请在月份中找到平均水平,那么平均值可以在月级上,该月也将从查询参数中传递. 从查询参数中,如果用户将几个月作为参数给出,则平均值的结果为月级. 如果用户给予一年或多年的聚合,则年水平 查询参数为下拉 时数选择器(月,年) 年基本选择器2018,2015,2016 .... 月基础选择器(所有月份,12,11,... 08,..03,01) 如果不清楚的解释,请告诉我.预先感谢. { "data": { "2018-05-11": { "12": 12.4, "00": 11.3 }, "2018-12-31": { "12": 12.4, "06": 13 }, "2021-05-10": { "00": 11.3, "06"
4 2024-03-06
编程技术问答社区
将数据从一个数组移到同一文件中的另一个数组中
我需要将数组元素从一个数组移动到同一文档中的另一个数组,然后从其移动的原始数组中删除元素. // Document { _id: ObjectId("67dc90594947be000838f7a7"), persons: [ { personId: "61cd90594947be000838f7c1", name: "John Doe", employment: [ { employmentId: "61cd9059494abe000838f7c8", type: "Full time", salary: 1010101 } ] }, { pers
2 2024-03-06
编程技术问答社区