Articles of mongodb

从模型创build对象时。 该对象是未定义的

你好,我需要一个项目日志导出.csv下载。 我搜查了很多,但仍然找不到答案。 我在我的mongoDB中创build了一个集合:“令牌” 该模型位于/src/models/token.coffee中 该应用程序位于/src/app.coffee 位于/src/controllers/token.coffee中的控制器 这是我的模特: mongoose = require('mongoose') timestamps = require('mongoose-timestamp') enums = require './enums' schema = mongoose.Schema # Schema definition TokenSchema = new schema user: type: mongoose.Schema.Types.ObjectId ref: 'User' required: true first_name: type: String required: true last_name: type: String required: true status: type: String enums: enums.TokenStatuses.__values default: enums.TokenStatuses.running # Plugins TokenSchema.plugin timestamps, […]

在更新中执行$ set和$ rename

我有以下文档 {“value”:5} 我想要更新导致以下内容: {“value_old”:5,“value”:3} 我正在尝试使用以下更新查询来实现此目的 { $rename: {"value": "value_old"} }, { $set :{ "value": (wtv new value was sent to the function) 3 } 此代码似乎并没有工作….我不想执行两个单独的更新查询 我已经尝试过聚合,并在它的结尾$ out,但导致删除整个集合,我只想更新一个单独的文档。 我这样做的原因是因为我需要操作是primefaces的。 我只是读db.eval(),它看起来很有前途,因为它从读写locking数据库。 有谁知道如何使用db.eval()来执行2更新?

我自己的Trello,将卡片从一个列表移动到另一个列表

首先,我必须说我是一个开始。 我试图创build一个看起来就像Trello的项目,然后我将开始我需要知道,在黑板,列表,卡片(任务)的MongoDB(Mongoose)表中的数据库如何做。 如果我做3个单独的表,我以后如何使用JavaScript拖放移动卡从上到下列表中和我想要的步骤列表之间。 我的意思是,我如何做到这一点,当我把卡从一个列表中移动到另一个卡中,它将更新所有内容并将其保存在数据库中。 我想有人解释我该怎么做,我将非常感激。

Mongoose $展开不返回所需的数据

我有这样的数据格式: { id: "59b47f582c981415e24ffaf6", userName: "userName", email: "email", albums: [ { _id: "59b4895b68697316e517ae2b", timestamp: "2017-09-10T00:37:47.409Z", images: [ "http://img.nodejscore.com/mongodb/bjnsjbnsdrjnbvolsdjb.png" ], description: "description", name: "name" }, } 我试图用$放松,以获得一个很好的图像清单。 我得到的最接近的是 { albums: { images: [ ] } }, { albums: { images: [ "http://img.nodejscore.com/mongodb/bjnsjbnsdrjnbvolsdjb.png", "http://img.nodejscore.com/mongodb/bjnsjbnsdrjnbvolsdjb.png" ] } }, 这是使用我的查询是这样的: Profile.aggregate( [ {$project: {"albums.images": 1, _id: 0}}, {$unwind:"$albums"} ], […]

如何从HTML页面中将数据作为mongoDB中的子文档插入到Mean-stack应用程序中

我试图将数据作为子文档插入到MEANSTACK应用程序中。 以下是架构: var Employee = mongoose.model('Employee', mongoose.Schema({ weekstart : { type:Date, default: Date.now}, weekend : { type:Date, default: Date.now}, // user : [{ type: Schema.Types.ObjectId, ref: 'Employee' }], timesheet:[{ project:{ type:String}, activity:{ type:String}, day:{type: String}, hours:{type: Number} }] })); 在上面,我想从HTML页面插入数据到活动,项目,date和时间。 为此目的的API返回是: app.post('/api/employees', function(req, res){ Employee.create( req.body, function(err, employees,time){ if(err) return res.send(err); res.json(employees); console.log(employees); console.log(time); }); […]

如何使用mongoose分页与填充和查询

我正在尝试使用mongoose分页处理与分页预先search。 我有以下模式: const authorSchema = Schema({ _id: Schema.Types.ObjectId, name: {type: String, unique: true}, }); const Author = mongoose.model('author', authorSchema, 'author'); const bookSchema = Schema({ _id: Schema.Types.ObjectId, name: String, authors:[{type: Schema.Types.ObjectId, ref: 'author'}] }); const Book= mongoose.model('book', bookSchema , 'book'); 我想find24本书的第1页与任何书籍包含作者姓名'吉恩'。 我使用mongoosepaginate模块做以下事情: Book.paginate({}, { page: 1, limit: 24, populate: { path: 'authors', select: 'name', match: { […]

Nodejs api根据查询string值加载数据

作为初学者,我正在使用MEAN堆栈技术构build一个简单的站点。 我有一个基于oject _id得到测验数据对象的api。 所有工作正常。 我想要做的是,基于从我的urlhttp://localhost:3000/viewQuiz?gpQ=59b2ac3cfc2283480879025c查询string值我希望加载数据,而不是硬编码,如下所示。 我在这里做的是我有一个path设置/viewQuiz和api url是/api/getQuizData 。 所以当我加载http://localhost:3000/viewQuiz?gpQ=xxxxxx我希望api得到正确的数据。 看到我的代码如下 Server.js //Routes app.get('/startCampaign', function(req, res){ res.sendFile(__dirname + '/public/views/start-campaign.html'); }); //Get data var Quiz = mongoose.model('Quiz', quizSchema); var ObjectId = require('mongodb').ObjectID; app.get('/api/getQuizData', function(req, res){ Quiz.find({_id:ObjectId("59b2ac3cfc2283480879025c")}, function(err, quiz) { if (err) throw err; // object of the user res.json(quiz[0]); }); }); angular位 //Get Quiz data $scope.quizData = […]

像Trello这样的项目,在Mongoose中创build一个合适的数据库

我正在尝试创build像Trello这样的项目。 有人可以告诉我如何创build一个卡的数据库,因为我首先想出了列表模型,我添加一个字段: card: { type: Array }, 现在的问题是,它会没事的。 因为我认为通过在棋盘上操作,我将更容易按顺序设置牌。 但后来我想添加拖动和移动卡从一个列表到另一个列表。 后来我想添加添加照片到卡上的选项,现在的问题是作为列表中的模型或创build一个单独的模型卡?

MongoDB群集中的并发问题

我到了一个需要扩展应用程序的地步,不幸的是,当我编写应用程序时,我从来没有想过集群。 现在我遇到了一些问题,我不确定为了避免这样的问题会做些什么。 我将展示两个相当简单的代码示例: 例1: 如果我在8个实例上运行这个函数,它可能会重复select相同的configuration文件(因为它们是有序的)。 更新那些很长时间没有更新的configuration文件是有道理的,但是有没有某种“locking”可以防止其他实例在完全相同的文件上工作? // Select 100 least updated profiles and update them PlayerProfile.find().sort({ updated_at: 1 }).limit(100).then((playerProfiles) => { // Code which would update these 100 selected profiles }) 例2: 我在我的MongoDB中有1000个账号的集合,每个实例应该有100个账号。 没有实例被允许使用完全相同的帐户凭证。 如何确保运行多个实例时的情况? Account.find({}, 'player_id token').limit(this.clientQuantity).then((accounts) => { logger.info(`Using ${accounts.length} accounts from the database`) for (let i = 0; i < accounts.length; i++) […]

gridfs-stream和mongoose> = 4.11.0连接设置

我一直在使用与mongoose老版本(<4.11.0)的gridfs-stream与以下设置: var grid = require("gridfs-stream"); var mongoose = require("mongoose"); mongoose.connect(connectionString); grid.mongo = mongoose.mongo; var gfs = grid(mongoose.connection.db); 所有这些设置正常工作。 在更新到mongoose4.11.11之后,应将mongoose连接设置更改为(第三行): mongoose.connect(connectionString, {useMongoClient: true}); 但是,现在mongoose.connection.db不再被定义。 上面的代码应该如何改变才能使其重新工作? 非常感谢。