Tag: mongodb

mongodb:encryption字段上的唯一索引

我正在用mongodbencryptionSSN。 但是,我需要使用SSN作为唯一的标识符,以确保具有该SSN的人不会插入重复。 所以基本上我想在保存之前检查重复的SSN。 不过,我不确定是否可以在使用AESfunctionencryption此字段后执行此操作。 如果我encryption并签名与AES相同的2个string,输出是否仍然相同? 如果不是,那么将会是一个好的select? 我曾经考虑过对SSN进行哈希处理,但SSN似乎有这么小的熵(它的9位数字,其中有些是可以预测的)。 如果我盐,我失去了在这个领域分配一个独特的索引的能力,除非我使用一个静态的盐,这并没有多大的作用。 加成 我将使用node.jsencryption核心模块在应用程序级进行encryption。

MongoDb从对象属性匹配条件的数组中select对象

我对mongoose和nodejs比较新。 而我试图在nodejs中快速的修改服务器端脚本。 我试图从mongoDb使用mongoose检索数据作为对象的数组。 这是我的模式看起来像 – var heatmapSchema = new Schema({ vuid: String coordinates: [ { x: Number, y: Number, c: Number, timestamp: Number } ] }, {collection: collectionName} ); 正如你所看到的, coordinates是一个对象数组。 我想查询mongoDb,所以我得到这些坐标对象的数组,其中c = 1 ( coordinate c属性等于1),即 – [ { x: 100, y: 230, c: 1, timestamp: 1233312312 }, { x: 120, y: 240, c: […]

Mongoose / mongodb – 每个ID只获取最新的logging

我有mongoose的检测模型: var InspectionSchema = new Schema({ business_id: { type: String, required: true }, score: { type: Number, min: 0, max: 100, required: true }, date: { type: Number, // in format YYYYMMDD required: true }, description: String, type: String }); InspectionSchema.index({business_id: 1, date: 1}, {unique: true}); 对同一个业务可能有多个检查(每个业务由一个唯一的business_id表示)。 但是,每个商家每天都有一次检查的限制,这就是为什么business_id +date有唯一的索引。 我还在Inspection对象上创build了一个静态方法,在给定business_ids列表的情况下,检索所有基础业务的检查。 InspectionSchema.statics.getAllForBusinessIds = function(ids, callback) { […]

文档大小意味着“发生了parseError”?

所以我有一个集合看起来像: { date:"20150730", store:"X", catalogue : [{…}, …, {…}] // ~3000 items }, { date:"20150807", store:"X", catalogue : [{…}, …, {…}] // ~3000 items }, { date:"20150807", store:"Y", catalogue : [{…}, …, {…}] // ~25000 items } 而我打算做的查询是: collection.findOne({store:_store},{"sort":{'date':-1}}, function(err,doc){ doc && console.log(doc); err && console.log(err); }); 我想翻译为“让我最近的文件_store”(第一个问题是我是吗? ) 然后,如果我尝试查询商店X,它完美的作品,但在商店Y,它抛出我: [Error: parseError occured] 更多信息 : […]

MongoDB / mongoose在两个模型之间build立关系?

我正在寻找创build一个一对多的关系遵循这种模式http://docs.mongodb.org/manual/tutorial/model-referenced-one-to-many-relationships-between-documents/ 我有一个Exercise.js模式,它将包含一系列练习。 var exerciseSchema = new mongoose.Schema({ _id: String, title: String, description: String, video: String, sets: Number, reps: String, rest: Number }); 然后我有一个锻炼计划BeginnerWorkout.js架构 var workoutDaySchema = new mongoose.Schema({ _id: String, day: Number, type: String, exercises: Array }); 我想将一系列练习与workoutDaySchema相关联,这包含特定锻炼的训练日的集合,每天都有一系列练习。 我有一个播种function,为我生成锻炼。 check: function() { // builds exercises Exercise.find({}, function(err, exercises) { if(exercises.length === 0) { console.log('there are […]

MongoDB更新/插入文档并增加匹配的数组元素

我使用Node.js和MongoDB与monk.js,我想以一个最小的方式做一个文件每小时的日志logging,如: 最终文件: {time:YYYY-MM-DD-HH,log:[{action:action1,count:1},{action:action2,count:27},{action:action3,count:5}]} 应该通过递增一个值来创build完整的文档。 例如,某人在这个小时内首先访问一个网页,action1的增量应该用一个查询创build下面的文档: {time:YYYY-MM-DD-HH,日志:[{action:action1,count:1}]} 在这个小时内的另一个用户访问另一个网页,文档应该被扩展到: {time:YYYY-MM-DD-HH,log:[{action:action1,count:1},{action:action2,count:1}]} 并且访问不同的网页时计数值应该增加。 目前我创build了每个行动的文件: tracking.update({time:moment().format('YYYY-MM-DD_HH'),action:action,info:info},{$ inc:{count:1}},{upsert:true},function呃){} 这可能与monk.js / mongodb? 编辑:谢谢。 你的解决scheme看起来干净优雅,但看起来像我的服务器无法处理它,或者我不能让它工作。 我写了一个极其肮脏的解决scheme,以action-name为关键字: tracking.update({time:time,ts:ts},JSON.parse('{“$ inc”:{“'+ action +'”:1}}'),{upsert:true},function(err){ });

Mongo错误,同时删除logging使用风帆JS

我是sails.js中的新手,尝试使用mongodb和sails.js创build垃圾邮件,在从logging列表中删除logging的同时获取一些问题。 在这里,我附上我的所有工作文件,请指导我 // controller file function removePost: function(req, res) { var id = req.query.id; //var id = req.param("id", null); console.log(id); sails.log(id); Dashboard.remove({'_id' : id } , function(error){ console.log("Come in dataase" + error); }) res.redirect('dashboard/index'); } 这是我的ejs文件 <div class="col-sm-9"> <h3>Latest Post</h3> <% result.forEach( function( model){ %> <br> <div class="media"> <i class="fa fa-check-square-o pull-left fa-2x"></i> <a href="/dashboard/removePost?id=<%=model.id%>"><i […]

Mongoose $ push的问题

我真的只需要在这里第二套眼睛。 我正在使用Mongoose npm在MongoDB中创build一个新条目。 然后我在Async npm的几个函数中使用这个新的入口。 我遇到的问题是,我得到的前三个控制台日志,“击球手”,“创build”,“req.body.campaign_id”,但没有任何过去。 我认为它必须在我的第一个findByIdAndUpdate $推。 请参阅下面的代码和架构。 码! 请参阅asynchronous并行“活动”function Bid.create(req.body, function(err, bid){ console.log('create') async.parallel({ campaign: function(done) { console.log(req.body.campaign_id) Camapaign.findByIdAndUpdate(req.body.campaign_id, { $push: { bids: bid._id } }, { safe: true, upsert: true }, function(err, campaign){ console.log('camp', 2) if(err) { console.log(err) done(err) } else { done(null, campaign) } }); }, user: function(done) { console.log('user', 1) […]

Socket.io不保存在Mongoose上save()

我创build一个简单的聊天只是为了学习socket.io以及如何在MongoDb上保存MongoDb的数据。 经过一番研究,我仍然阻塞,因为mongoose不保存数据。 在这里我的configuration: // configuration var app = require('express')(); http = require('http').Server(app), io = require('socket.io')(http), mongoose = require('mongoose'); // connect to db mongoose.connect('mongodb://localhost/chat', function(err){ if(err){ console.log(err); }else{ console.log('Connected to MongoDb!'); } }); // Schema model var chatSchema = mongoose.Schema({ msg: String, created: {type: Date, default: Date.now} }, { collection: 'chat' }); // model var Chat […]

MongoDB – 在父文档中填充GridFS文件元数据

我正在使用NodeJS Express,MongoDB,Mongoose和GridFS上传和检索文件。 我想通过ID引用其他文档中的文件,并在查询其他文档时填充文件元数据。 例如:如果我有一个像这样的文件的集合“用户”… { _id: ObjectId("554dfeb59e78d9081af2404f"), name: "John Doe", image: ObjectId("55b61ae329c44b483665bafc") } 我想这样做… User.findById(req.params.id) .populate('image') .exec(function(err, user) {…}) …应该让我访问文件元数据 – 例如文件名… user.image.filename 有任何想法吗?