草庐IT

mongodb-cluster

全部标签

MongoDB:按日期/时间获取每个 ID 的最新完整文档

我需要获取基于数据/时间的id数组中的最新文档。我有以下查询执行此操作,但它仅返回_id和acquiredTime字段。我怎样才能让它返回包含所有字段的完整文档?db.trip.aggregate([{$match:{tripId:{$in:["trip01","trip02"]}}},{$sort:{acquiredTime:-1}},{$group:{_id:"$tripId",acquiredTime:{$first:"$acquiredTime"}}}])集合看起来像这样:[{"tripId":"trip01","acquiredTime":1000,"name":"abc",

mongodb - 为什么 reactivemongo 的 collection.save() 做一个 get()?

有时我会读到一段由专家编写的代码,这会引发一个大危险信号,因为它显然关注我一无所知的事情——而且可能应该。在这种情况下,这里是reactivemongo的BSONCollection.save()的实现,它根据ObjectId执行更新插入:defsave(doc:BSONDocument,writeConcern:GetLastError)(implicitec:ExecutionContext):Future[LastError]={doc.get("_id").map{id=>update(BSONDocument("_id"->id),doc,writeConcern,upser

Mongodb $geoIntersect 问题

我有一个集合,其属性为“place”,如下所示。"place":{"name":"CentralRegion","country":"Country_A","coor_type":"Polygon","coordinates":[[[103.749959507073,1.2123138339349],[103.918426999964,1.2123138339349],[103.918426999964,1.36874499902569],[103.749959507073,1.36874499902569]]]}我正在尝试使用$geoInterset运算符来获取文档列表,其中plac

mongodb - 如何防止创建新的 MongoDB 数据库减慢我的测试速度?

在我的每个功能测试之前,我删除测试数据库并通过再次设置索引来“重新创建”它。这导致每个小测试都需要超过一秒的时间。在日志中,这些行显示:2015-01-27T17:24:38.129+0100[initandlisten]connectionacceptedfromanonymousunixsocket#4(1connectionnowopen)2015-01-27T17:24:38.141+0100[conn4]dropDatabaseteststarting2015-01-27T17:24:38.153+0100[conn4]removeJournalFiles2015-01-27

angularjs - Mean.js angularjs 查询mongodb数据库

我知道这是一个愚蠢的问题,但我遗漏了一些东西,我迷路了。我使用“yomeanjs”创建了一个新项目,从而创建了标准脚手架。从应用程序的公共(public)端,我试图在用户中搜索用户,而不是根据他们的ID而是他们的电子邮件地址。有些我需要如何使用Users.get或Users.query编写查询,但我找不到如何执行此操作的示例。我必须在应用端创建新的Controller/路由吗?在公共(public)方面,我尝试了很多不同的事情,例如:varuser=Users.query({email:'bob@this.com'});我现在似乎无法透过美丽的树木看到森林。谢谢!

node.js - 排除mongodb中子文档数组中的字段

我有两个文件图片文档:{_id:123,user:{user_sub_docuemnt},thumb:'dqwdqwdqwdw'}post文档:{_id:444,user:{user_sub_document},attach:[{_id:123,user:{user_sub_docuemnt},thumb:'dqwdqwdqwdw'}]}user_sub_document包含password字段,因此我需要排除该字段。这是我目前所拥有的:Post.aggregate([{$match:{'user._id':{$in:idArr}}},{$project:{content:1,atta

mongodb - 比较 MongoDB 中的多个属性

这个问题在这里已经有了答案:Mongodbfindcomparingarrayelements(4个答案)关闭7年前。是否可以在MongoDB文档中的两个属性之间进行比较(例如大于,“>”)?例如,如果我有一个文档:{"t":[100,200]}是否有可能做这样的事情来查找“t”中第一项小于“t”中第二项的文档?db.item.find({"t.0":{$lte:"t.1"}});我意识到我可以先查询所有相关文档,然后在我的应用程序中进行过滤,但我想看看MongoDB中是否有本地方法来执行此操作。感谢您的帮助,乔希

arrays - Mongodb Java 在文档中添加新的数组元素

我正在使用mongo2.2.3和java驱动程序。我的困境是,我必须将一个字段和值$push到一个数组元素中,但我似乎无法弄清楚如何做到这一点。我的数据示例:"_id":1,"scores":[{"type":"english","score":78.97979},{"type":"spanish","score":6.99}]我想在type=english的文档中推送一个数组attribute("grade":"A")。推送后的文档是这样的:"_id":1,"scores":[{"type":"english","score":78.97979,"grade":"A"},{"type

regex - MongoDB 正则表达式未按预期工作

db.col.find({_id:{term:"garcia"}})找到包含term="garcia"的文档。然而,db.col.find({_id:{term:/garcia/}})没有找到任何东西。这是什么原因?文档:{"_id":{"term":"garcia"},"count":43512,"count_users":15388} 最佳答案 您当前使用{_id:{term:/garcia/}}的查询要求完全匹配_id本身,而不仅仅是term字段。因此,它试图找到一个文档,其中_id是一个具有单个term字段且该正则表达式的v

MongoDB 使用 ensureIndex 删除重复项但保留最后一个条目而不是第一个

我有一个重复的问题。我正在尝试从MongoDB集合中删除所有重复项,问题是我不想保留第一个条目,而是保留最后一个条目。这是我保留第一个条目的方式:db.CUDB.ensureIndex({CUid:1},{unique:true,dropDups:true})但我希望能够以相反的方式insureIndex并保留最后添加的条目而不是第一个。最简单的方法是什么? 最佳答案 ensureIndex不提供执行此操作的方法。它也没有说明哪些值将被删除。在您的情况下,我会尝试执行以下操作(这肯定比确保索引慢)。我还假设您有一些字段(在我的例子中