Articles of mongodb

如何制作和存储邮件标题的slu??

我使用MongoDB / mongoose来存储具有以下模式的博客文章: PostSchema = mongoose.Schema({ title: {type: String}, body: {type: String} }); 现在我的posturl如下所示: http://www.example.local/posts/571f78d077b4454bafcfcced 我想我的post包含slu like如下: http://www.example.local/posts/571f78d077b4454bafcfcced/how-to-make-and-store-slug-for-title 所以我的问题是: 我应该生成一次slug和存储PostModel架构或每个post上显示? 如何为标题(现有的节点模块解决这个任务)生成slug basen非ASCII字符? 我应该使用什么地方将查询从http://www.example.local/posts/571f78d077b4454bafcfccedredirect到http://www.example.local/posts/571f78d077b4454bafcfcced/how-to-make-and-store-slug-for-title (nodejs,nginx,客户端)。 谢谢! EIDT:我也发现,在StackOverflow数据库viwer的问题与ID 503429 SO存储non slugged标题。 那么这是否意味着SO在每次请求问题时都会计算出slu g?

跳过时间戳中间件在Mongoose中的某些更新

我的应用程序使用Mongoose,并有一个使用时间戳选项的模式: var fooSchema = new Schema({ name: String, }, { timestamps: true, }); mongoose.model('Foo', fooSchema); 所以,无论何时将更新写入集合, updatedAt属性都会更改为当前date。 但是现在我想添加一些不应该更新updatedAt属性的更改。 一些Stackoverflow( 示例 )的答案build议使用Foo.collection作为涉嫌访问本地MongoDB驱动程序。 所以我试过这个: Foo.collection.update({ _id: someFooId }, { $set: { name: 'New Name' } }); 但是,那也改变了updatedAt属性。 那么如何更新文档, 而不更改updatedAt ?

MongoDB GridFS的“非法块格式”exception

我一直在Node.js上编写一个应用程序,用于将图像存储在MongoDB的GridFS文件系统中。 我已经通过应用上传图片,并且图片显示为正确存储: $ mongofiles -v -d speaker-karaoke get howard-basement-100×115.jpg Tue Jul 17 12:14:16 creating new connection to:127.0.0.1 Tue Jul 17 12:14:16 BackgroundJob starting: ConnectBG Tue Jul 17 12:14:16 connected connection! connected to: 127.0.0.1 done write to: howard-basement-100×115.jpg 这抓住了MongoDB的.jpg,我可以打开它没有问题,所以它看起来像我上传正在正确存储。 但是,在我正在运行的应用程序中,当我尝试读取同一个文件时,我得到: 12:15:44 web.1 | started with pid 89621 12:15:45 web.1 | Connecting to mongodb://localhost/speaker-karaoke 12:15:45 web.1 | […]

Mongodb:如何以与数组元素相同的顺序排列“select in”

我正在执行这个mongo查询: db.mytable.find({id:{$in:["1","2", "3", "4" ]}}); 它以奇怪的顺序返回所有结果,如下所示: 4,3,2,1 我需要按照在查询数组中定义的顺序检索所有结果。 1,2,3,4 可能吗 ?

mongoose迁徙

任何人有一个迁移模块,他们使用mongoose插件迁移mongodb数据? 我目前正在使用“迁移”模块,除了事实上我需要在每个向上/向下创build/销毁我的连接。 IE // Setup mongoose var mongoose = require('mongoose') , Role = require('../models/role') , User = require('../models/user'); exports.up = function(next) { // get a brand new connection for this patch. mongoose.connect('mongodb://localhost/sagedb'); var adminUser = { username: 'admin', password: 'admin' }; User.createUser(adminUser, function(err, user) { if (err) { mongoose.disconnect(); // Make sure to close connection […]

node.js – MongoError:不能规范化查询:BadValue坏秩序数组

我有一个数据库与以下文件结构: { "_id" : ObjectId("520bea012ab230549e749cff"), "Day" : 1, "Time" : 54, "State" : "Vermont", "Airport" : "BTV", "Temperature" : 39, "Humidity" : 57, "Wind Speed" : 6, "Wind Direction" : 170, "Station Pressure" : 29.6, "Sea Level Pressure" : 150 } 我需要为每个“国家”find最高的“温度”(例如,有100个文件,包括“州”,“佛蒙特州”),并在此文件中添加条目“month_high”:真(温度最高) 这是我的代码: http : //pastebin.com/UbACLbSF 但是当我在shell中运行程序时,出现以下错误: MongoError:无法规范化查询:BadValue坏秩序数组[2]

MongoDB:集群文件按地理位置给定区域和最大点?

我正在尝试开发一个基于地图的可视化,其中包含一个基于MongoDB集合的子集的“热图”,其中包含如下文档: { "PlaceName" : "Boston", "Location" : { "type" : "Point", "coordinates" : [ 42.358056, -71.063611 ] }, "Subpopulations": { "Age": { "0_4" : 37122, "6_11" : 33167, "12_17" : 35464, "18_24" : 130885, "25_34" : 127058, "34_44" : 79092, "45_54" : 72076, "55_64" : 59766, "65_74" : 33997, "75_84" : 20219, "85_" : 9057 […]

Mongoose select:false不适用于位置嵌套对象

我希望我的模式的location字段默认隐藏。 我添加了select: false属性,但在select文档时总是返回… var userSchema = new mongoose.Schema({ cellphone: { type: String, required: true, unique: true, }, location: { 'type': { type: String, required: true, enum: ['Point', 'LineString', 'Polygon'], default: 'Point' }, coordinates: [Number], select: false, <– here }, }); userSchema.index({location: '2dsphere'}); 打电话时: User.find({ }, function(err, result){ console.log(result[0]); }); 输出是: { cellphone: '+33656565656', location: { […]

如何在MongoDB Node App中启用审计并logging所有的CRUD操作?

我有一个节点mongo应用程序。 现在我想为应用程序中发生的一些特定的恶意事件显示审计线索。 解决这个问题最好的办法是什么? 我已经考虑创build一个新的集合和服务,将在节点应用程序中的每个方法中调用以logging操作。

Mongoose高级自定义模式对象types

在Mongoose> = 4.4中,找不到涉及自定义对象(或值对象 )的高级 自定义模式types的任何示例。 想象一下,我想要使用一个自定义types,如: function Polygon(c) { this.bounds = [ /* some data */ ]; this.npoints = /* … */ /* … initialize polygon … */ }; Polygon.prototype.area = function surfaceArea() { /**/ }; Polygon.prototype.toObject = function toObject() { return this.bounds; }; 接下来,我实现了一个自定义的SchemaType,如: function PolygonType(key, options) { mongoose.SchemaType.call(this, key, options, 'PolygonType'); } PolygonType.prototype […]