草庐IT

mongodb.driver

全部标签

mongodb - 更新 Mongo 对象中的所有嵌套数组

我的数据结构是:{"_id":{"$oid":"511D0A0EC075F3FF25000003"},"progresses":[{"behavior":{"behavior":{"_id":"511d052f52fbf0fd25000002","disabled":false,"name":"UnityInstalled","key":"UnityInstalled","points":1,"timeout":0},"key":"UnityNotInstalled","name":"UnityNotInstalled","points":1,"timeout":0,"disabled

node.js - 彻底关闭 express.js + mongodb 服务器(使用 node.js)

我有一个使用express.js和mongodb作为数据存储的node.js网络服务器。此服务器由runit控制,我正在尝试实现一种正常关闭服务器的方法。我正在为SIGINT实现信号处理程序和SIGTERM,并且我知道您可以通过调用.close()来停止监听新连接。在createServer()返回的对象上.到目前为止一切顺利。但是,即使没有更多的请求即将到来,系统中可能已经有许多请求需要在我关闭数据库之前完成。我正在使用mongodbReplicaSet,我想如果我只调用db.close()马上,其中一些请求可能会以某种方式失败。有什么方法可以以允许挂起的数据库查询完成的方式关闭数据

mongodb - Meteor.js 和 Mongoose 兼容性

我想主要在服务器端使用带有meteor的MongooseORM,直到meteorRelease模式方法。我可以在Meteor方法中调用MongooseORM操作并使用Mongoose检索方法(如findById)发布。如果我以这种方式处理事情,我会错过任何潜在的问题或meteor特征吗? 最佳答案 不幸的是,有问题。我们想做同样的事情,但是(开箱即用)mongoose包不使用Meteor的DDP协议(protocol),并且在您进行CRUD操作时不会触发react性。Fibers/etc也可能存在问题,尽管我们对Mongoose的插

node.js - Mongodb 找到最佳匹配

我想构建一个查询,返回数据库中最匹配的文档。即我想查找包含以下字段的文档-“动物”:“狗”“颜色”:“棕色”“图案”:“点”“尺寸”:“小”如果没有包含上述所有字段及其对应值的文档,我希望查询返回最佳匹配。f.e{"animal":"dog","color":"brown","size":"small"}我可以在mongodb中实现递归查询吗?如果是这样,如何?我应该使用mapReduce,如果是,如何使用?人们可以将这个问题更多地看作是一个推荐系统问题,就像我想推荐最适合给定值的项目(文档)一样,如果有人知道实现上述内容的好方法,我将不胜感激我正在使用mongodbmongoose和

mongodb - MongoDB 中空数组的多键稀疏索引

在这种情况下预期会有什么行为?mongo会将空数组视为null/undefined并将其包含到稀疏索引中,或者如果数组为空,则不会对文档进行索引? 最佳答案 在MongoDB中,空数组的处理方式与null不同。正如您在Mongoshell的以下代码中看到的那样,稀疏索引将空数组查找为空数组,而不是null。>c=db.docstest.docs>c.insert({a:[]})>c.ensureIndex({a:1},{sparse:true})>c.find({a:[]}).count()1>c.find({a:null}).co

mongodb - Mongo c# 驱动程序卡住并且从不在 Update() 上返回值

我有一个长时间运行的操作,它插入数千组条目,每次使用下面的代码插入一组。这段代码运行一段时间后,collection.Update()方法卡住(不返回)并且整个过程逐渐停止。在任何地方都找不到任何合理的解释。我查看了mongod日志,没有异常,它只是停止接收来自该进程的请求。Mongo版本:2.4.1,C#驱动版本:1.8.0using(_mongoServer.RequestStart(_database)){varcollection=GetCollection(collectionName);//Iterateoverallrecordsforeach(varrecordToIn

mongodb - 如何删除标签范围

我们可以使用sh.removeShardTag()删除标签,但是我们如何删除标签范围呢?例如我有一个范围,想删除。tag:0_to_F{"_id":"0"}-->>{"_id":"F"} 最佳答案 目前没有删除标签范围帮助函数(请参阅thispage以获取添加请求)。现在您必须手动修改config数据库中的tags集合。之后我会重新启动您的mongos进程以确保它们反射(reflect)出来。 关于mongodb-如何删除标签范围,我们在StackOverflow上找到一个类似的问题:

MongoDB - 如何在配置文件中使用 setParameter

我正在尝试为我的MongoDB安装设置logLevel参数的自定义值。执行此操作的标准方法似乎是将--setParameter参数传递给mongod.exe可执行文件。但我读了ConfigurationFileOptions页面,它表明可以includethesetParameter在配置文件中。这种情况下的语法是什么? 最佳答案 从MongoDB2.4开始,现在有针对MongoDB的版本特定的在线手册。如果您查看页面左上角的导航,您应该会看到一个下拉列表,其中包含可用的手动版本(例如“2.4(当前)”或“2.2”)。默认手册与当前

mongodb - 同步 mongodb 数据库的两个副本

我有一个运行在amazonec2虚拟机上的mongodb服务器。VM有大约100GB的存储空间,DB以每天大约3GB的速度增长。我正在尝试找出将数据库保存在外部服务器上的最佳方法,并且只让亚马逊虚拟机上的mongodb将数据维护一两天。然后应将数据同步到外部服务器并从VM上的数据库中删除。mongo有一个克隆方法,但它看起来并不能完成这项工作。有没有人试过做类似的事情?谢谢! 最佳答案 MongoDB并没有真正轻松地做到这一点(至少现在还没有)。如果可以的话,您现在最好在应用程序层实现它。如果那真的不是一个选项,您可以尝试使用分片.

mongodb - 迭代 MongoDB 中的集合以进行更新

我正在迭代一个集合(将Moped作为Ruby驱动程序运行)但是如何为每个文档更新一个字段?irb>session=Moped::Session.new(["127.0.0.1:27017"])irb>session.use:demoappirb>users=session[:users]irb>users.find.each{|u|u.update(age:rand(18..80))}这不会更新字段“年龄”,而一个简单的irb>users.find.each{|u|users.find(_id:u["_id"]).update(age:rand(18..80))}确实如此。但是遍历一个