Tag: mongodb

我可以让Mongoose文档从实例方法中删除自己吗?

标题解释了这一切。 我有一个Mongoose文档,它有一个像这样的实例方法: Model.methods.destroy = function(callback) { // blah blah this.remove(callback); } 我怎么能告诉Model一个实例删除自己? 当我尝试this.remove ,它告诉我 Uncaught TypeError: Object #<EventEmitter> has no method 'remove' 而this.constructor也没有remove 。

MongoDB云部署 – 高TTFB

我正在Node.js + MongoDB中构build一个仅移动应用程序。 我在AWS AP-Southeast-1地区部署了我的服务器。 由于我是MongoDB的新手,我正在利用MongoLabs,Compose.IO,MongoDirector等云托pipe服务(testing几个)。 现在,这些云托pipe平台正在将我的数据库部署在AWS AP-Southeast-2或US-East-1地区,原因是东南地区的共享主机不可用。 在testing我的API时,我看到TTFB(Time to First Byte,时间到第一个字节)的时间达到了1-1.5秒的惊人的高延迟。 这是因为在不同地区托pipe的服务器和数据库? 除此之外,我的查询相对花费更less的时间。 等待一个答复,因为我们很快就会到生产。

mongoose多对一插入

我需要帮忙! 我正在用nodejs和mongo创build一个网站来学习。 我有一个问题,我知道最好的方法来做到这一点。 我有两个集合codes和tag到表codes我有tags字段是tags数组。 CodeModel: var CodeSchema = new Schema({ title: { type: 'String', required: true }, text: { type: 'String', required: true }, url: { type: 'String', required: true }, uri: String, createdAt: { type: Date, default: Date.now }, updatedAt: { type: Date, default: Date.now }, owner: { type: Schema.ObjectId, ref: 'User' }, tags: […]

mongoose更新条件PDTdate/型号ISOdate

嗨,我的Schmema有一个ISO-Date的字段: ISODate("2015-04-30T14:47:46.501Z") 贝宝返回一个成功的支付date对象的forms: Time/Date stamp generated by PayPal, in the following format: HH:MM:SS Mmm DD, YYYY PDT Length: 28 characters 现在我想更新具有payers_email_address和最大不同于paypal时间戳15分钟的时间戳的数据库条目。 这些是我认为有必要这样做的步骤: 1)在这一步我不确定。 直言不讳的方式是将PayPaldatestring化,然后将其拆分并重新排列。 但我想有更好的办法? 问题:如何正确地将PDTdate转换为UTCdate。 2)创build一个新的UTCdate:var dt = new Date('2010-06-09T15:20:00Z'); 3)在date中添加15分钟:dt.setMinutes(dt.getMinutes()+ 15); 4)查询两个dateMongoDB / Mongoose在特定date查询? 整体而言(不适用于2015年4月30日的date) MyModel.find({date: {"$gte": new Date("10:00:46 04 29, 2015").toUTCString(), "$lt": new Date("14:00:46 05 01, 2015").toUTCString()}}) 编辑: 我猜如果我得到了查询工作,我可以使用相同的PDT: new Date("20:15:10 05 […]

mongoose更新不立即回电

我确信这只是一个误解,但我无法弄清楚:/ 我正在尝试在一个节点服务器上使用mongoose来更新mongoDB中的一个文档。 我的代码如下所示: Message.update(searchQuery, updateQuery, function(err, response) { if(err) return handleError(err); if(response) console.log(util.inspect(response)); }); 当我第一次调用这个函数时,callback没有执行,也没有对数据库进行修改。 有效地,更新不会发生。 当我第二次调用函数时,第一次调用的callback将返回,第一次更新的更改将应用​​于DB。 第二次通话的回叫不会返回,第二次通话也不会改变。 当我第三次调用它时,callback2返回并且更改2被应用,但不callback和更改3.等等… 我认为这与mongoose函数没有直接执行时没有指定callback,所以我尝试添加一个空的“选项”数组: Message.update(searchQuery, updateQuery, **{}**, function(err, response){…}); 或明确执行更新: Message.update(searchQuery, updateQuery).exec( function(err, response){…}); 结果虽然不变。

mongoose不会更新子文件

几个小时以来,我一直在抨击我的头,似乎无法解决这个问题。 我决定在一个学习项目上使用Mongo,看看我喜欢它。 mongoose是推荐使用它的方式,所以我也是这样做的。 我有两个模式: var PluginSchema = new Schema({ name: { type: String, required: true }, slug: { type: String }, description: { type: String }, created_date: { type: Date, default: Date.now }, active: { type: Boolean, default: true }, user: { type: Schema.Types.ObjectId, ref: 'User' }, versions: [PluginVersion.schema] }); PluginSchema.methods.getLatestVersion = function(callback) { if(this.versions.length […]

Mongoose $ near查询返回parsing错误

这是一个对象的例子: { "_id" : "581994", "type" : "Feature", "geometry" : { "type" : "Point", "coordinates" : [ -149.0133, 64.7439 ] } } 这是我执行的查询: Earthquake .find({ geometry: { $near: { $geometry: { type: 'Point', coordinates: [lon, lat] } } } }) .exec(function(err, results) { if (err) { console.log(err); } return reply(results); }) 这是我创build的模型模式: var mongoose = […]

节点本地mongodb驱动程序连接池问题

我使用Node.js + RxJS + MongoDB作为socket.io服务器。 经过一定数量的请求后,我的连接池到DB变得非常大。 所以文件描述符永远不会被释放,服务器closures。 对于db查询我使用下面的代码: /* @flow */ var { Observable } = require('rx'); var client = require('mongodb'); var { assign } = require('lodash'); var __DEV__ = process.env.NODE_ENV !== 'production'; var URL = 'my database url'; class QueryBuilder { _db$: Observable; _selectors: Object; constructor(db$: Observable, selectors?: Object) { this._db$ = db$; if […]

mongoose互相embedded的文件

我有这些集合的mongoDb数据库 collection: Category { id: catnumber: nameNL: nameFR: subcategories:[id:, nameNL:, nameFR] products:[id,nameNL,nameFR] } Collection: Product { id: nameNL: nameFR: descriptionNL: descriptionFR: code1: code2: categories:[id:,nameNl:,nameFR] image: } 正如你所看到的,我反规范的fields.Now我不知道如何链接这与mongoose模式。 我有这个,但是这似乎并不正确: var Schema = mongoose.Schema; var ProductSchema = new Schema({ _id: Number, nameNL: String, nameFR:String, descriptionNL:String, descriptionFR:String, code1:String, code2:String, categories: [CategorySchema._id,CategorySchema.nameNL,CategorySchema.nameFR] }); var CategorySchema = new Schema({ _id:Number, […]

如何在mongoose和nodejs中使用$ geoNear

我试图显示两个坐标之间的距离。 下面的查询执行并按预期给出结果 db.runCommand( { geoNear: "distances", near: [ 83.307974, 17.716456], spherical: true } ); 我想从nodejs脚本执行此查询。 我正在使用mongoose。 我试过聚合函数,但我没有得到结果。 有人能以正确的方式引导我! 我试过这个: db.getCollection('distances').aggregate([ { "$geoNear": { "near": { "type": "Point", "locc": [83.307974, 17.716456] }, "distanceField": "distance", "spherical": true } } ]); 参考文献: geoNear Stackoverflow问题 geoNeam MongoDB