Tag: mongodb

Mongoose:ObjectId比较失败不一致

我有一个直接的工具来构build文档集合,然后自动格式化它们,以便在ExpressJS上编写EPUB或LaTeX渲染。 我使用Coffeescript,如果重要的话(我怀疑它)。 使用mongoose,我有以下几点: DocumentSchema = new Schema title: String Offrefs = new Schema ref: { type: ObjectId } isa: String BinderSchema = new Schema title: String contains: [Offrefs] Offrefs没有指定它引用的内容,因为我希望能够在其他活页夹中包含一些活页夹,以创build逻辑集合:“这些用于打印机”,“这些用于epub”,“这些仅限于Web, “等等(我已经把所有的杂项都删掉了。) 不幸的是,我已经跑到查询的地方,为检索的对象 (story._id == offref.ref) -> True 而且两人确实看起来一样。 但: (binder._id == offref.ref) -> False (String(binder._id) == String(offref.ref)) -> True 和最后两个引用中的两个ObjectId比较,它们是相同的ID号,但ObjectId对象不能正确比较。 我不想不断地进行string转换,当我将这些复杂的对象转换为数据树时,这是一个很大的可能性。 任何数据库中的树关系都是熊; 在MongoDB中它们不应该很难。 你如何在MongoDB中进行ObjectId比较?

MongoDB:输出'id'而不是'_id'

我正在使用mongoose(节点),什么是最好的方式来输出id而不是_id?

使用Node.js监控Mongo的更改

我使用Node.js进行一些项目工作,我想监视我的Mongo数据库(集合)的变化,如果有东西被添加,基本上会激发一个事件。 任何人都知道这是可能的吗? 我正在使用node-mongodb-native驱动程序。 如果不是这样,我还想要从服务器(使用node运行)推送数据到客户端浏览器的任何可用的指针。

mongodb kerberos同伴依赖

尝试全局安装mongodb或mongoose会导致Kerberos缺less对等依赖关系 Jamess-MacBook-Pro:ka2 jamessherry$ npm install -g mongodb /usr/local/lib └─┬ mongodb@2.0.48 └── UNMET PEER DEPENDENCY kerberos@~0.0 npm WARN EPEERINVALID mongodb-core@1.2.21 requires a peer of kerberos@~0.0 but none was installed. Jamess-MacBook-Pro:ka2 jamessherry$ npm install -g mongodb – nan@2.0.9 node_modules/mongodb/node_modules/kerberos/node_modules/nan – kerberos@0.0.17 node_modules/mongodb/node_modules/kerberos /usr/local/lib └─┬ mongodb@2.0.48 └── UNMET PEER DEPENDENCY kerberos@~0.0 npm WARN EPEERINVALID mongodb-core@1.2.21 requires a peer […]

Mongoose“静态”方法与“实例”方法

我相信这个问题与这个问题类似,但是术语是不同的。 从Mongoose 4 文档 : 我们也可以定义我们自己的自定义文档实例方法。 // define a schema var animalSchema = new Schema({ name: String, type: String }); // assign a function to the "methods" object of our animalSchema animalSchema.methods.findSimilarTypes = function (cb) { return this.model('Animal').find({ type: this.type }, cb); } 现在我们所有的动物实例都有一个可用的findSimilarTypes方法。 接着: 向模型添加静态方法也很简单。 继续我们的animalSchema: // assign a function to the "statics" object […]

mongoose:模式与模型?

在看教程的时候,模式和模型之间经常会有划分,特别是在处理mongoose/蒙戈德(mongoose / mongodb)时。 这使得移植到postgresql有点混乱,因为“模型”似乎不存在于该系统下。 这两种方法有什么区别? 例如,什么是这个行的postgres / sql ORM等价物? (mongoose和express.js): var userSchema = schema.define('local', { username: String, password: String, }); module.exports = mongoose.model('User', userSchema);

MongoDB + nodejs:如何查询ISODate字段?

我正在使用nodejs和node-mongodb-native驱动程序( http://mongodb.github.io/node-mongodb-native/ )。 我有一个date属性存储为ISODatetypes的文档。 通过nodejs,我使用这个查询: db.collection("log").find({ localHitDate: { '$gte': '2013-12-12T16:00:00.000Z', '$lt': '2013-12-12T18:00:00.000Z' } }) 它什么都不返回。 为了使其工作,我需要做,而不是: db.collection("log").find({ localHitDate: { '$gte': ISODate('2013-12-12T16:00:00.000Z'), '$lt': ISODate('2013-12-12T18:00:00.000Z') } }) 但ISODate不能在我的nodejs代码中识别。 那么如何通过我的nodejs程序来查询mongodate字段呢? 谢谢

从node.js连接到mongodb时发生ECONNREFUSED错误

我知道我正在做一些非常愚蠢和不好的事情,但我希望有人可以帮助我设置一个基本的数据库连接到mongodb从node.js在mac上。 我用自制软件安装了mongodb,似乎工作得很好。 我已经启动了服务器(mongod)作为本地login用户,并打开了第二个terminal,并确认可以使用mongo连接到它。 当我运行mongo时,我收到消息“连接到:localhost:27017 / test”,然后是命令提示符。 在mongo shell中运行一些命令似乎在那里工作。 将两个端子打开并运行。 我也确认我可以在本地主机:28017上访问web界面。 我安装了node.js并添加了mongoose包。 现在尝试使用超级简单的node.js应用程序(也作为本地login用户运行)进行连接: var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); 我收到以下错误 events.js:72 throw er; // Unhandled 'error' event ^ Error: connect ECONNREFUSED at errnoException (net.js:901:11) at Object.afterConnect [as oncomplete] (net.js:892:19) 把我的头靠在墙上试图让事情变得如此简单。 我错过了什么? 编辑:这里是从mongod的日志。 正如你所看到的,我尝试过多次,而且都是瞬间失败: Thu Dec 5 08:19:43.700 [initandlisten] MongoDB starting : pid=14412 port=27017 dbpath=/usr/local/var/mongodb 64-bit host=mobadmins-MacBook-Pro-3.local 08:19:43.700 […]

为什么当mongodb的好处被认为是无模式时,mongoose使用模式?

我是一个mongodb的超级新手。 我正在使用mongoose从node.js访问mongodb,并知道如何使事情发挥作用,但是我不认为我理解它为什么会像这样工作。 最重要的是,我不明白为什么mongoose具有“图式”,当mongodb的突出特点之一是它没有图式。 有人能教导我吗? 谢谢。

如何使用MongoDB在Heroku上托pipe我自己的Parse Server?

(为了清楚起见,我问这个问题,以便提供我发现的答案,以帮助那些同样受到Parseclosures影响的人) Parse.com最近宣布,他们将于2017年1月份closures店面,但幸运的是,他们已经将他们的Parse Server软件开源,所以我们都可以托pipe我们自己的Parse服务器实例。 我已经研究了可用于托pipeparsing服务器的各种选项,并决定在Heroku上托pipe我的 我喜欢Parse,因为它很容易使用,而且我没有设置后端的真实经验。 我试图在网上关注几个指南,但是发现它们有点难以理解,模糊的步骤或步骤使您在另一个网站上的兔子洞中安装了一堆工具,这一切都变得混乱起来。 如何在Heroku上托pipeParse Server,将其设置为接受来自应用程序的跨域请求,创buildMongoDB数据库,并将所有数据从Parse迁移到新数据库?