Tag: mongodb

如何限制mongodb中更新文件的数量

如何实现类似于db.collection.find().limit(10)但更新文档? 现在我正在使用一些非常糟糕的事情,例如使用db.collection.find().limit()获取文档,然后更新它们。 一般来说,我想要返回给定数量的logging,并在每个logging中改变一个字段。 谢谢。

处理Mongoosevalidation错误 – 在哪里以及如何?

我正在试图决定如何处理Mongoose中的validation错误。 使用节点validation器自定义错误消息 我已经使用节点validation器定义了我自己的validation规则,例如: UserSchema.path('username') .validate(function (username) { return validator.check(username).notEmpty() }, 'Username cannot be blank') 这将产生一个如下所示的错误: username: { message: 'Validator "Username cannot be blank" failed for path username', name: 'ValidatorError', path: 'username', type: 'Username cannot be blank' }, 使用mongoosevalidation器 但是,节点validation器提供自己的错误消息。 如果我使用mongoose-validator Node模块将节点validation器直接插入到我的模式中,那么我可以直接使用这些错误消息: var UserSchema = new Schema({ name: { type: String, validate: [validate('notEmpty')] } }); 这将生成一个如下所示的错误消息: […]

MongoDB身份validation设置:“db.createUser不是一个函数”和“密码不能为空”

我正在尝试在MongoDB上设置身份validation。 我在configuration文件中取消了注释auth=true并重新启动服务器。 通过mongo的第一个连接被拒绝了。 第二个(在第一个之后)经历了,我在原木中得到了这个: Sat Apr 12 14:56:46 [initandlisten] connection accepted from 127.0.0.1:44001 #1 Sat Apr 12 14:56:46 [conn1] note: no users configured in admin.system.users, allowing localhost access 而在控制台,我能够执行命令,但是如果我尝试遵循任何数量的教程(包括官方的),我得到任一db.createUser is not a function执行db.createUser()或password can't be empty在执行db.addUser()时password can't be empty : 我经过的对象是: { user: "username", pwd: "passphrase", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] […]

如何使用Java在mongoDB中插入图像?

我想将图像文件存储在mongoDB中。 我正在使用java。 任何链接或build议,将不胜感激。

EventStore与MongoDb

我想知道使用EventStore( http://geteventstore.com )在MongoDb中实现事件源自己的优势。 我问的原因是,我们公司有很多人每天与MongoDb合作。 尽pipe如此,他们不能使用事件采购。 虽然他们并不是完全处于这个问题的黑暗之中,但他们也不打算在任何地方开始实施。 我即将开始一个项目,这非常适合于事件采购。 大约有16个非常明确的事件,大约7个明确的预测。 我说“关于”,因为我知道,一旦他们看到使用的产品,就会有更多的预测和事件的需求。 该方法将首先是API,我们组织的其他部分将使用REST API。 虽然我已经阅读了格雷格·扬(Greg Young)定义的“事件采购”(Event Sourcing)的很多内容,但我从来没有实际采用过事件采购解决scheme 这是一个绿色的田野工程。 由于我们打算将所有内容公开为REST接口,因此没有技术限制。 所以,如果有人有与MongoDb的EvenStore或事件采购的工作经验,请赐教。 还有一个几乎完全不相关的事件采购问题:你有没有直接查询事件存储? 或者你总是会创造新的预测和重播事件来填充这些预测?

如何使用docker-compose创build一个mongo数据库?

我试图分发一组连接的应用程序运行在几个链接的容器,其中包括一个需要: 分发包含一些种子数据; 允许用户添加额外的数据。 理想情况下,数据也将保存在链接的数据容器中。 我可以使用mongo基础实例,不装载任何卷(dockerhub图像: psychemedia/mongo_nomount – 这实质上是没有VOLUME /data/db语句的基础mongo Dockerfile)和一个Dockerfileconfiguration行的: ADD . /files WORKDIR /files RUN mkdir -p /data/db && mongod –fork –logpath=/tmp/mongodb.log && sleep 20 && \ mongoimport –db testdb –collection testcoll –type csv –headerline –file ./testdata.csv #&& mongod –shutdown 其中./testdata.csv与./testdata.csv在同一个目录( ./mongo-with-data )中。 我的docker组成configuration文件包括以下内容: mongo: #image: mongo build: ./mongo-with-data ports: – "27017:27017" #Ideally we […]

我怎样才能发现一个mongo数据库的结构

我有一个Mongo数据库,我没有创build或架构,是否有一个很好的方式来反思数据库或打印出结构是什么开始处理什么types的数据被存储,数据types是如何嵌套等等?

如何使用Scala将1亿条logging加载到MongoDB中进行性能testing?

我有一个用Scala编写的小脚本,用于载入一个MongoDB实例,上面有100,000,000个样本logging。 这个想法是让数据库全部加载,然后做一些性能testing(如果需要的话调整/重新加载)。 问题是每十万条logging的加载时间几乎是线性增加的。 在我的加载过程开始时,只需要4秒来加载这些logging。 现在,在近6,000,000条logging中,加载相同数量(100,000)的时间需要300到400秒! 这慢了两个数量级! 查询仍然很快,但以这样的速度,我永远无法加载我想要的数据量。 如果我用我所有的logging(所有100,000,000!)写出一个文件,然后用mongoimport导入整个文件,这样会更快吗? 还是我的期望太高,我使用的数据库超出了它应该处理的? 有什么想法吗? 谢谢! 这是我的脚本: import java.util.Date import com.mongodb.casbah.Imports._ import com.mongodb.casbah.commons.MongoDBObject object MongoPopulateTest { val ONE_HUNDRED_THOUSAND = 100000 val ONE_MILLION = ONE_HUNDRED_THOUSAND * 10 val random = new scala.util.Random(12345) val connection = MongoConnection() val db = connection("mongoVolumeTest") val collection = db("testData") val INDEX_KEYS = List("A", "G", "E", "F") […]

连续对一个mongodb游标进行迭代(在移动到下一个文档之前等待callback)

使用mongoskin,我可以做这样的查询,这将返回一个游标: myCollection.find({}, function(err, resultCursor) { resultCursor.each(function(err, result) { } } 不过,我想为每个文档调用一些asynchronous函数,并且在这个callback之后才移动到游标上的下一个项目(类似于async.js模块中的eachSeries结构)。 例如: myCollection.find({}, function(err, resultCursor) { resultCursor.each(function(err, result) { externalAsyncFunction(result, function(err) { //externalAsyncFunction completed – now want to move to next doc }); } } 我怎么能这样做? 谢谢 更新: 我不想使用toArray()因为这是一个大的批处理操作,并且结果可能不适合内存。

带有“@”的MongoDB密码

我试图用Node.js中的Mongoose连接到一个使用用户名和密码的MongoDB数据库。 所有的文档都说连接string应该看起来像 mongodb://username:password@host:port/db 但是,密码中包含“@”字符。 我怎样才能使连接string出这个mongoose会明白? 我可以逃避密码中的“@”,还是有另一种连接方法,我必须使用?