Tag: mongodb

在dropDatabase之后不执行唯一的字段约束

我有一个Node / Mongoose / MongoDB项目,我使用Selenium WebDriver进行集成testing。 我的testing用例设置的一部分是在每次testing之前擦拭数据库。 我通过使用在这里被大量接受的方法通过命令行来完成此操作删除MongoDB数据库中的所有内容 mongo [database] –eval "db.dropDatabase();" 然而问题在于,运行这个命令之后,Mongo不再强制任何唯一的字段,比如我的Mongoose Schema定义的以下内容: new Mongoose.Schema name : type : String required : true unique : true 如果我在dropDatabase之后重新启动mongod ,那么再次强制执行唯一约束。 但是因为我的mongod是由一个单独的进程运行的,所以重启它作为我的testing用例的一部分会很麻烦,我希望不必要。 这是一个错误还是我错过了什么?

在MongoDB中使用$ addtoset添加元素到数组

我正在尝试使用addtoset更新集合内的数组的示例。 新的元素正在被添加,但并非如预期的那样。 根据addtoset,只有当它不在列表中时,才会添加一个新的元素。 问题: 它只是采取任何元素被添加。 这是我的代码示例 架构(mongo_database.js): var category = new Schema({ Category_Name: { type: String, required: true}, //SubCategories: [{}] Category_Type: { type: String}, Sub_Categories: [{Sub_Category_Name: String, UpdatedOn: { type:Date, default:Date.now} }], CreatedDate: { type:Date, default: Date.now}, UpdatedOn: {type: Date, default: Date.now} }); service.js exports.addCategory = function (req, res){ //console.log(req.body); var category_name = req.body.category_name; var […]

MongoDB本地节点驱动程序:解释是破碎?

我无法使用Node.js的本地mongodb驱动程序进行正确的解释。 当我使用蒙戈壳,一切都很好。 我的语法错了吗? 还有什么我可以做错的? db.user.find({},{explain:true}).toArray db.user.find({}).explain 我已经尝试了这两个,在用户表中有两个文件,它给了我这个输出: { cursor: 'BasicCursor', isMultiKey: false, n: 1, nscannedObjects: 1, nscanned: 1, nscannedObjectsAllPlans: 1, nscannedAllPlans: 1, scanAndOrder: false, indexOnly: false, nYields: 0, nChunkSkips: 0, millis: 0, allPlans: [ { cursor: 'BasicCursor', isMultiKey: false, n: 1, nscannedObjects: 1, nscanned: 1, scanAndOrder: false, indexOnly: false, nChunkSkips: 0 } ], server: 'Rocket.local:27017', […]

通过协会的mongoose限制

我有这样一个集合: [ { parent: 'a', d1: '1', d2: '2', d3: '3', w: 10 }, { parent: 'a', d1: '1', d2: '2', d3: '3', w: 20 }, { parent: 'a', d1: '1', d2: '2', d3: '3', w: 30 }, { parent: 'a', d1: '1', d2: '2', d3: '3', w: 40 }, { parent: 'a', d1: '1', […]

如何正确构buildasynchronous节点代码

我试图通过我所拥有的“事件”数据库来工作,并根据每个事件的位置,半径,开始时间和结束时间从Instagram API中提取照片。 我已经在我的Node服务器上设置了下面的代码,但它不像我所期望的那样运行。 当我运行这个代码时,我看到的第一件事就是sending request to Instagram for [name] with min_timestamp: [timestamp]为每个事件打印sending request to Instagram for [name] with min_timestamp: [timestamp] 。 我没有想到这一点。 我希望看到这行logging的第一个事件,然后更新一个新的时间戳,直到该事件达到其结束时间。 然后事件2,遍历时间戳,等等。 最后,我会为每个事件重复一遍又一遍的相同的照片。 就好像我的代码一遍又一遍地向Instagram发出一个请求(带有初始时间戳),然后停止。 关于我的时间戳variables的注意事项:对于每个事件,我将我的minTimestampvariables设置为初始等于我的数据库中的event.start 。 这在发送给Instagram的请求中使用。 Instagram返回20张照片给我。 每张照片都有一个created_timevariables。 我抓住最近的created_timevariables,并设置我的minTimestampvariables等于它( minTimestamp = images[0].created_time; )我的下一个请求发送到Instagram(抓住接下来的20张照片)。 这将继续,直到minTimestamp不再小于endTimestamp( event.end从我的数据库中的事件)。 server.js代码: // modules ================================================= var express = require('express.io'); var app = express(); var port = process.env.PORT || […]

如何dynamic创build集合名称(取决于用户信息)

我想创build一个更深的收集..数据更加组织。 我知道如何访问数据,如何检索信息,但我不知道如何创build模式。 这是我的实际模式: var MySchema = new Schema ({ event: { full: String, date: String, name: String, }, person: { name: String, phone: String, email: String, obs: String } }); 我想要改变: var BookingSchema = new Schema ({ monday: { event: { full: String, date: String, name: String, }, person: { name: String, phone: String, email: […]

search一个angularjs项目的Yeoman生成器

我在网站Yeoman发电机上寻找一个Angularjs Boostraps和NodeJS(Express)和MongoDb的模板,但是我没有find这个模板。 我在网站上寻找模板..?

已解决 – 客户端错误:消息中的坏对象:bson长度与我们find的不匹配

我正在将数据发布到利用Mongoose和MongoDB的Node / Express API上。 在尝试使用此模式进行批量插入时,数据和处理程序: // Mongoose schema var NotificationSchema = new Schema({ uuid: { type: String, required: true, index: true }, message: { type: String, required: true }, url: { type: String, required: true } }); // sample data [ { 'uuid': '34e1ffef49ad4001bb9231c21bdb3be7', 'url': '/polls/4666386cb92348af93417e9abb9ce880/forecast/', 'message': '@btaylor has shared a poll with you' }, […]

处理令牌的体系结构(NodeJS)(MongoDB)

我想知道下列选项正确处理令牌的优缺点: 选项A: (在后端)api.login(用户)>>(用Passport成功)>> createOrUpdateToken >> toSaveTokenIn UserDocument >>返回用户>>(在前端)toSavetokenUserInFrontEnd(window.localStorage.setItem) 选项B: (在后端)api.login(用户)>>(用Passport成功)>> createOrUpdateToken >> toSaveTokenIn TokenDocument >>返回User&Token >>(在前端)toSavetokenUserInFrontEnd(window.localStorage.setItem) 什么是正确的select? 为什么?

创build一组用户,这将是一个好方法?

我在Node中构build了一个社交networkingWeb应用程序。 我添加了一个组模型来创build一组用户,如Facebook。 我一直在寻找一个npm模块,我可以使用和search谷歌和stackoverflow,但我还没有find任何东西。 这是我添加到我的专家组的模型。 var groupSchema = mongoose.Schema({ name: String, motivation: String, destination: String, days: String, members: [String], profile: String }); module.exports = mongoose.model('Group', groupSchema); 有没有人有这样做的好方法? 注意:我使用了一个groupController,我想用3个动作。 一个用于显示用户,一个用于添加用户和一个创build,但它没有工作。