草庐IT

mongodb.driver

全部标签

MongoDb 获取最后几个文档和 await tailable 游标

我想从MongoDB集合中获取最后5个文档,然后继续跟踪它以获得新文档。这完全可以通过一个查询来完成,还是我真的需要两个查询?如果有两个查询,在不添加额外字段的情况下实现此目的的最佳方法是什么?虽然可以用任何语言回答,但这里有一个node.js示例代码片段,它是我尝试实现的(省略了错误处理,并根据问题的第一个答案编辑了片段):MongoClient.connect("mongodb://localhost:1338/mydb",function(err,db){db.collection('mycollection',function(err,col){col.count({},fun

mongodb - 跨不同版本导入mongodb数据

我可以使用mongodump从mongoversion2.0获取数据转储并在mongoversion2.4上执行mongorestore吗?或者最好的方法是使用mongoimport/mongoexport并使用json作为数据格式? 最佳答案 MongoDB的数据模型应该在这些版本之间兼容,因此dump将能够从2.0->2.4正常工作。(尽管不支持从2.4->2.0倒退:http://docs.mongodb.org/manual/release-notes/2.2/#mongodump-2-2-output-incompatib

mongodb - Scala Play Salat 聚合示例

我在后端使用带有MongoDB的ScalaPlay2.x,我必须承认Salat对mongoCRUD操作有很好的支持。但到目前为止,我还没有找到任何好的示例来说明如何使用$unwind、$match、$group或聚合管道等SALAT调用mongo聚合函数。例如db.posts.aggregate([{$unwind:"$tag"},{$group:{_id:"$tags",count:{$sum:1}}},{$sort:{$post:-1}},{$limit:1}])UPDATE(ALTERNATIVE)我没有找到任何系统地解释用法的帮助SALAT中的聚合查询。因此,作为解决方法,我还

MongoDB聚合组

在使用组时,我需要很少的值通过管道(无需更改)传递到后续管道聚合器例如,如果我的输入是{"_id":1,"tags":["a","b","b","c"],"text":"a"},{"_id":2,"tags":["a","c"],"text":"b"}我喜欢这样的输出{_id:1,tags:[a,b,c],text:a},{_id:2,tags:[a,c],text:b}我做了一个放松和分组,并执行$addToSet来删除重复项。我的问题是如何制作text按原样出现在输出中。文本键和值只需要通过这个管道,但是我不得不使用累加器到目前为止我试过这段代码usetestvarunwind={

mongodb - 使用 mongorestore 将数据恢复到分片集群时的预期平衡行为

我注意到,当通过mongos使用mongorestore将数据恢复到分片集群时,所有记录最初都保存到主分片(集合的),只有平衡器进程移动这些block,这是一个相对缓慢的过程,所以在恢复后我有类似的情况:chunks:rs_shard-128rs_shard-229rs_shard-427rs_shard-3644我在mongodb/mongos日志文件中没有任何错误。我不确定,但我认为过去数据是以一种已经平衡的方式恢复的。现在我使用的是2.4.6版。有人可以确认预期的行为是什么吗? 最佳答案 恕我直言,这是发生了什么:恢复数据时,

mongodb - 将 mongodb 聚合函数转换为 ReactiveMongo 和 scala

我正在尝试在ReactiveMongo中实现一个聚合方法,但我有点卡住了。我有以下数据集:{"_id":ObjectId("522891aa40ef0b5d11cb9232"),"created":1378390442167,"origin":2,"originIpAddress":"","rating":3,"remindersSent":1,"status":4,"text":"","updated":1378563426223,"userInfo":{"firstName":"Person","lastName":"Person","email":"person@person.c

mongodb - 以树状结构聚合文档

我有一个mongo集合,其中包含如下文档:{area:"Somearea",group:"groupname",//areaincludesdifferentgroupsname:"name"//therearemanynamesineachgroup}对于前端,我需要一个树状结构:{_id:"areaname",name:"sameas_id",ap:{children:[{name:"groupname,children:[{name:"namefromthedoc"}]},...]}}我感兴趣的是使用聚合框架执行此操作有多难,或者是否可以这样做?或者更好地在客户端计算这个?

java - 使用 MongoDB、Jackson 和 MongoJack 的自定义序列化程序

我有一个类,在序列化时,应该在其位置序列化其成员之一。我的类(class)是:@JsonSerialize(using=MyClassSerializer.class)publicclassMyClassimplementsSerializable{/***AdefaultIDforthisclassforserialization.*/privatestaticfinallongserialVersionUID=1L;/***Amemberofthisobject.*/privatefinalOtherClassotherClass;.../***Returnstheinstance

javascript - 使用 Node.jS 驱动程序在 MongoDB 中迭代多个集合并比较结果

我在MongoDB数据库中有两个集合:“照片”和“相册”。相册集合中的每个文档都包含一个“图像”属性,该属性包含一个ID数组,这些ID是返回照片集合的键。我需要使用Node.js驱动程序遍历相册集合并删除孤立图像,即不在任何相册中的图像。我好像想不通...这是我写的代码varMongoClient=require('mongodb').MongoClient;MongoClient.connect('mongodb://localhost:27017/photosharing',function(err,db){if(err)throwerr;varimages=db.collecti

mongodb/ meteor : how to I get the value of one field corresponding to the $max value of another field?

我有一个包含以下字段的消息集合:_id、senderId、receiverId、dateSubmittedMs、message,对于给定的用户,我想将所有其他用户的最新消息返回给他。因此,例如,如果有用户Alex、Barb、Chuck、Dora,我想返回Alex与Barb、Chuck和Dora之间的最新消息。做这个的最好方式是什么?我可以使用聚合一步完成吗?官方在线文档(http://docs.mongodb.org/manual/reference/aggregation/min/)中的聚合示例显示了如何在集合中找到最低年龄的群体,但我需要的是类似于在人群中找到最年轻的人的名字。这是