草庐IT

mongodb - Mongo 数据库大小不一致

我使用MongoGridFS,我有一个相当大的Mongo数据库,当我使用db.stats()命令时,当前数据大小为89GB。当我创建一个mongo转储时,文件系统中的目录大小为86GB,当我在另一台机器上恢复数据库并运行db.stats()时,我现在得到122GB。有谁知道转储/恢复后dataSize增加33GB的原因是什么?编辑这是初始数据库的统计数据MongoDBshellversion:2.4.5connectingto:imgdbrs0:PRIMARY>db.stats();{"db":"imgdb","collections":4,"objects":2549884,"avg

javascript - Mongo 和 Node.js : Finding a document by _id using a UUID (GUID)

我正在使用node.js开发一个restAPI,我正在尝试查询一个mongo集合。我可以使用字符串(例如“公司名称”)进行查询,但我需要能够查询文档中的“_id”元素。在mongo中,_id当前存储如下(作为GUID):{"_id":newBinData(3,"MH+t3q6PD0SxVR5z7/pzfw=="),"companyname":"TestCompany","databasename":"TestDataBase",}这是我当前的GET方法的样子:exports.getBusinessCardData=function(req,res){varid=req.params.i

java - Mongo Hadoop 连接器问题

我正在尝试运行MapReduce作业:我从Mongo中提取数据,然后写入HDFS,但我似乎无法运行该作业。我找不到示例,但我遇到的问题是,如果我设置Mongo的输入路径,它会丢失Mongo的输出路径。现在,当我的MongoDB实例没有身份验证时,我收到身份验证错误。finalConfigurationconf=getConf();finalJobjob=newJob(conf,"sort");MongoConfigconfig=newMongoConfig(conf);MongoConfigUtil.setInputFormat(getConf(),MongoInputFormat.c

node.js - 在 Docker 容器中安装 mongo 客户端

我正在使用fig在各种Docker容器中构建和运行我的应用程序,到目前为止一切顺利。我有一个用于我的应用程序的容器和一个包含mongo的db容器。但现在我正在尝试连接到mongo服务器以使用用户和数据库为它播种,但我找不到如何安装mongo客户端。我的应用程序的图像源自标准dockerfile/nodejs图像,不包括mongo客户端。尝试RUNmongo只会给出错误mongonotfound。到目前为止,我找到的所有文档都与如何在Docker容器中安装mongo服务器相关,但到目前为止我发现的任何内容都没有告诉我如何安装mongo客户端。我该怎么做? 最佳

node.js - 如何在使用 baucis 的 POST 请求后获取插入的 mongo id

我正在使用express+baucis+mongoose为我存储在mongodb中的模型制作一个基本的CRUDAPI。varapp=express();mongoose.model('workgroup',WorkGroupSchema);baucis.rest('workgroup');app.use('/api',baucis());varserver=app.listen(4100);到目前为止一切正常,我可以发出任何请求来创建、更新和删除我的工作组。现在,我需要在用户创建工作组时执行更多操作(更新工作组权限),为此我需要获取最近创建的工作组的mongoid。我尝试在baucis

使用 elixir-mongo 的 Mongodb 身份验证

我刚开始使用Elixir,所以我想我对这里有一些基本的误解。这是代码...defmoduleMdbdodefconnect(collection,this_db\\"db-test")do{:ok,mongo}=Mongo.connect("db-test.some-mongo-server.com",12345)db=mongo|>Mongo.db(this_db)db|>Mongo.auth("user","secretpassword")dbendend我从iex-Smix开始当我尝试db=Mdb.connect("users")我明白了**(UndefinedFunctionE

python - “str”对象在插入到 pymongo 集合时不支持项目分配

RHEL6.5,python2.6.6我正在尝试将解码后的消息写入MongoDB集合。“解码消息”以字典的形式接收。在该字典中,键都是字符串,值可以是字符串、整数、datetime.time、datetime.datetime或Decimal类型.我编写了一个on_message函数,该函数使用一个参数context来调用,该参数包含要保存到MongoDB的字典。我还编写了一个lambda来转换一些JSON不可序列化的类型。dthandler=lambdaobj:(str(obj)ifisinstance(obj,Decimal)orisinstance(obj,datetime.ti

php - MongoDB(Mongoose 和 Mongo 客户端 PHP)在 concat 字段中搜索

给定一个像{name:String,middlename:String,lastname:String}这样的结构,在mongo中有没有办法在mongoosefornode和php中搜索字段连接中的术语,例如在mysql中我可以做类似的事情select*frompersonswhereconcat_ws('',name,middlename,lastname)like'%JohnA%'ORconcat_ws('',lastname,middlename,name)like'%JohnA%'groupbyid这样我就不需要明确地为每个字段输入一个,但我不知道如何在mongo中完成类似的事

json - GSON 将带有日历的对象反序列化为带有 Mongo 日期的 json 并返回

我有一些实体,其中包含一些日历属性。我想以一种将它们存储为GSON序列化JSON中的日期的方式对其进行序列化,因为Mongo可以将$date存储为newISODate("..")。我们通常通过忽略带有ExclusionStrategy的日历属性并手动设置它们来做到这一点,但一段时间后它变得非常可怕。我找到了一些代码片段,应该可以通过自定义TypeAdapter使其工作。这是我的CalendarDateTypeAdapter。publicclassCalendarDateTypeAdapterextendsTypeAdapterimplementsJsonSerializer,JsonD

javascript - 如何动态确定mongo写关注

我正在使用mongoose连接到mongo数据库:varoptions={db:{w:2,/*replicaacknowledged*/readPreference:'nearest'}}mongoose.connect('mongodb://localhost:27017/some_db',options);在我的开发环境中,这个mongodb不会被复制,这会导致当写入问题设置为2时发生错误:cannotuse'w'>1whenahostisnotreplicated但是在生产中它会被复制所以我需要这个设置。我想我需要一种方法来确定我连接到的mongo是否被复制,如果是,则将写入关注