草庐IT

multiple-projects

全部标签

使用匹配的分片键和 multiple=true 进行 MongoDB 更新

MongoDB建议对指定'multi:false'选项的分片集合的所有update()操作必须在查询条件中包含分片键,以便查询只命中一个特定的分片集群。如果没有找到分片键且'multi:false',则返回此错误(参见http://docs.mongodb.org/manual/core/sharded-cluster-query-router/):updatedoesnotcontain_idorshardkeyforpattern我正在切换我的代码以使用分片集合。我的代码默认使用update()和'multi:true',我不想更改该默认选项以避免上述任何潜在错误。我的问题是,如果

MongoDB (3.0) 聚合 : Several matches vs One match with multiple items

我正在做一个项目,该项目需要我根据大量匹配(可能有100个)动态创建动态MongoDB查询。除了创建正确的索引之外,我想知道如何将匹配项构建到管道中是否重要。根据以下示例,其中一个示例的性能是否与另一个不同或更好?我假设示例2会减少结果集,但调用次数更多?也许这就是示例1在幕后所做的?提前感谢您的帮助!示例1db.Test.aggregate([{$match:{item1:'foo1',item2:'foo2',item3:'foo3'}}])对示例2db.Test.aggregate([{$match:{item1:'foo1'}},{$match:{item2:'foo2'}},

MongoDB 聚合 - $project 和 $cond

我正在尝试使用MongoDBs(v.3.2.11)聚合框架来处理一些如下所示的日志文档:{"_id":ObjectId("58b753c6d4421f00216de942"),"session_id":"7CB8725A-3994-45B8-9CA2-92FC19406288","event_type":"connect_begin","timestamp":"1488409541.674997","user_id":"f6830aac-60be-44df-9fa7-7aa530d637ce","u_at":ISODate("2017-03-01T23:05:42.077Z"),"c_

MongoDB $project 提取某些属性(将其作为数组返回)

我有一个这样的MongoDB集合[{taskType:1,client:{name:"Moe",...},...},{taskType:1,client:{name:"Larry",...},...},{taskType:1,client:{name:"Curly",...},...}]我可以对其运行以下$project查询:{$project:{_id:0,client:"$client"}}我得到了这个结果:[{client:{name:"Moe",...}},{client:{name:"Larry",...}},{client:{name:"Curly",...}}]但我实际上

mongodb 聚合,是否可以在 $project 期间向数组中添加条目

我有以下形式的文件:{_id:ObjectId(.....),prop1:"foo",links:[1,2,3,4]}{_id:ObjectId(.....),prop1:"bar",links:[5,6,7,8]}我正在使用聚合框架来处理这些文档,我使用$unwind为links数组中的每个值生成一个文档。但是我有三种情况需要在调用$unwind之前更新文档,我一直在看$project操作,但是我找不到关于如何为以下情况创建或更新数组的信息。1)缺少链接属性{_id:ObjectId(.....),prop1:"far"}我需要插入链接数组2)links数组属性是一个空数组{_id:

MongoDB 的聚合框架 : project only matching element of an array

我有一个“类”文档:{className:"AAA",students:[{name:"An",age:"13"},{name:"Hao",age:"13"},{name:"John",age:"14"},{name:"Hung",age:"12"}]}我想得到名字是“An”的学生,只得到数组“students”中的匹配元素。我可以使用函数find()来做到这一点:>db.class.find({"students.name":"An"},{"students.$":true}){"_id":ObjectId("548b01815a06570735b946c1"),"students"

mongodb - 如何在 mongodb 聚合 $project 操作中包含现有字段

我有一个示例集合articles,其中包含以下数据:/*0*/{"_id":"post1","author":"Bob","content":"...","page_views":5}/*1*/{"_id":"post2","author":"Bob","content":"...","page_views":9}/*2*/{"_id":"post3","author":"Bob","content":"...","page_views":8}我想使用聚合框架来查找给定作者的页面浏览量的最小值和最大值,并在此过程中显示带有最小值/最大值的文章的_id。这是我的预期输出:{_id:"Bo

Java + MongoDB : Updating multiple fields in a document

我正在尝试一次更新单个MongoDB文档中的多个字段,但只更新了一个字段。我有一个集合user,其中用户由customer_user_id唯一定义。我想更新某个用户的birth_year和country字段。这就是我正在做的://Definethesearchquery:DBCollectioncol=md.getDb().getCollection("user");BasicDBObjectsearchQuery=newBasicDBObject("customer_user_id",customer_user_id);//Definetheupdatequery:BasicDBOb

mongodb - 我可以使用 $project 将字段作为 mongo 聚合查询中的顶级文档返回吗?

我有一个类似下面的文档,我想在结果数组中返回当前顶级文档的一个字段作为顶级文档本身:{field1:{contents:{}}field2:{othercontent:{}}}我希望聚合查询的结果返回以下内容{contents:{}}这可以通过$project和聚合框架来完成吗? 最佳答案 是的,您可以使用$project来做到这一点。您只需告诉它使用dotnotation检索嵌套的contents对象:db.items.aggregate({$project:{contents:'$field1.contents'}});另外,如

MongoDB:Mapreduce:reduce->multiple 尚不支持

我有一个MongoDB集合(名为“目录”),其中包含大约5个天文目录。其中几个目录相互引用,因此其中一个文档可能如下所示:{"_id":ObjectId("4ec574a68e4e7a519166015f"),"bii":20.9519,"class":2480,"cpdname":"CPD-216109","decdeg":-21.8417,"decpm":0.004,"dmname":"-214299","hdname":"HD145612","lii":352.8556,"name":"PPM265262","ppmname":"PPM265262","radeg":243.20