Tag: mongodb

为什么最终为java.lang.IllegalArgumentExceptionexception为Casbah / Java MongoDB驱动程序?

我看到一个奇怪的问题,使用casbah / java driver. 当驱动程序尝试从mongo创build响应时,我一直遇到以下exception: Oct 16, 2012 10:45:07 AM com.mongodb.DBTCPConnector$MyPort error SEVERE: MyPort.error called java.lang.IllegalArgumentException: response too long: 1634610484 at com.mongodb.Response.(Response.java:40) at com.mongodb.DBPort.go(DBPort.java:110) at com.mongodb.DBPort.go(DBPort.java:75) at com.mongodb.DBPort.call(DBPort.java:65) at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:201) at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:295) at com.mongodb.DBCursor._check(DBCursor.java:354) at com.mongodb.DBCursor._hasNext(DBCursor.java:484) at com.mongodb.DBCursor.hasNext(DBCursor.java:509) at com.mongodb.casbah.MongoCursorBase$class.hasNext(MongoCursor.scala:73) at com.mongodb.casbah.MongoCursor.hasNext(MongoCursor.scala:497) at scala.collection.Iterator$class.foreach(Iterator.scala:660) at com.mongodb.casbah.MongoCursor.foreach(MongoCursor.scala:497) … 这似乎是随机发生的,即使在mongo不应该返回查询结果的情况下。 所报告的大小不一致,通常比它应该或可能的要大。 我猜这可能是某种forms的反应腐败。 使用Wireshark解决这个问题的时候,我遇到了一些困难,但是我总是发现,引发查询的请求/响应链响应抛出这个错误,这个链接有来自MongoDB的“TCP Window Full”响应: 我正在使用的版本: Casbah: […]

如何在Node.js中最好地创build一个RESTful API

我是Node的初学者(通常是所有的后端Web开发),并且我已经开始在Node中编写一个RESTful API。 有几件事情我正试图让我的头脑。 我的应用程序使用Express和Mongoose,并使用express-resource模块轻松创build我的API资源的CRUD路由。 但是有一些我不高兴的事情,并认为我可以做得更好。 首先是mongoose。 如果我想为我的API编写testing,我没有办法将Mongoose强制存储到内存中。 所有的教程似乎指向mongoose,但是,我真的不知道我应该使用什么。 其次,我的资源似乎有很多样板代码。 这真的是在Node.js中创buildRESTful API的最好方法吗? 还有其他模块,可以帮助我创build我的CRUD路线吗? 我相信有一些方法可以直接从你的模式创buildCRUD路线,而不需要代码,但我真的不知道如何。 我已经看到了像Tower.js和CompoundJS(正式的RailwayJS)这样的项目,似乎这些解决scheme比我的问题解决得更多。 也许我应该使用它们,但我真的只想要Node.js应用程序是一个API,没有更多。 我正在处理独立于API的前端。 为了提供一些背景,这里是我目前的情况。 目前,我有一个在Mongoose中定义的模型: var mongoose = require('mongoose') , Schema = mongoose.Schema , Link var LinkSchema = new Schema({ uri: String, meta: { title: String, desc: String }, shares: [{ uid: Schema.Types.ObjectId, date: Date, message: String }] }) Link = module.exports […]

使用聚合框架对MongoDB进行组计数

假设我的MongoDB模式如下所示: {car_id: "…", owner_id: "…"} 这是一个多对多的关系。 例如,数据可能如下所示: +—–+———-+——–+ | _id | owner_id | car_id | +—–+———-+——–+ | 1 | 1 | 1 | | 2 | 1 | 2 | | 3 | 1 | 3 | | 4 | 2 | 1 | | 5 | 2 | 2 | | 6 | 3 […]

如何用对象ID数组创buildMongoose模式?

我已经定义了一个mongoose用户模式: var userSchema = mongoose.Schema({ email: { type: String, required: true, unique: true}, password: { type: String, required: true}, name: { first: { type: String, required: true, trim: true}, last: { type: String, required: true, trim: true} }, phone: Number, lists: [listSchema], friends: [mongoose.Types.ObjectId], accessToken: { type: String } // Used for Remember Me }); […]

MongoDB:可怕的MapReduce性能

我在关系型数据库方面有很长的历史,但是我是MongoDB和MapReduce的新手,所以我几乎是积极的,我一定是做错了。 我会直接回答这个问题。 对不起,如果它很长。 我在MySQL中有一个数据库表,它跟踪每天的成员configuration文件视图的数量。 为了testing它有10,000,000行。 CREATE TABLE `profile_views` ( `id` int(10) unsigned NOT NULL auto_increment, `username` varchar(20) NOT NULL, `day` date NOT NULL, `views` int(10) unsigned default '0', PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`,`day`), KEY `day` (`day`) ) ENGINE=InnoDB; 典型的数据可能是这样的。 +——–+———-+————+——+ | id | username | day | hits | +——–+———-+————+——+ | 650001 | […]

如何获取另一个模型中定义的mongoose数据库的Schema

这是我的文件夹结构: +– express_example |—- app.js |—- models |——– songs.js |——– albums.js |—- and another files of expressjs 我的代码在文件songs.js var mongoose = require('mongoose') , Schema = mongoose.Schema , ObjectId = Schema.ObjectId; var SongSchema = new Schema({ name: {type: String, default: 'songname'} , link: {type: String, default: './data/train.mp3'} , date: {type: Date, default: Date.now()} , position: {type: […]

将MongoDB集合的子集保存到另一个集合

我有一套这样的 {date: 20120101} {date: 20120103} {date: 20120104} {date: 20120005} {date: 20120105} 如何将date“20120105”的这些文档的子集保存到另一个集合? 即 db.subset.save(db.full_set.find({date: "20120105"}));

Ubuntu上的MongoDB不会作为服务启动,日志中没有任何东西

我在Ubuntu上运行MongoDB 2.2,如果我运行: sudo mongod 我得到一个错误,它无法find/数据/数据库,这不是数据库的地方。 在mongod.conf中,数据库path被指定为数据库所在的Ubuntu 10gen default /var/lib/mongodb 。 看起来像mongod没有findconf文件。 所以当我运行时: sudo mongod -f /etc/mongodb.conf 服务器启动正常,输出logging到日志文件: /var/log/mongodb/mongodb.log 。 一切都很开心 我可以切换到另一个shell,login到mongo shell,查看数据库并运行查询。 所以,我取消了这一点,并尝试作为服务运行: > sudo status mongodb mongodb stop/waiting > sudo start mongodb mongodb start/running, process 10468 看起来不错,但是mongo服务器没有启动。 运行另一个: > sudo status mongodb mongodb stop/waiting > mongo MongoDB shell version: 2.2.0 connecting to: test Sat […]

有没有人与Aerospike合作? 它与MongoDB相比如何?

任何人都可以说Aerospike是否和他们声称的一样好? 我有点怀疑,因为这是一个商业企业。 据我了解,他们刚刚发布了一个开源版本,但他们网站上的声明仍然可能被夸大。 我对Aerospike和MongoDB的比较特别感兴趣。

直接通过JavaScript访问MongoDB

有没有可能通过JavaScript窗体浏览器直接从MongoDB访问和检索数据,而无需后端处理?