Tag: mongoose schema

在mongoose中级联创build/删除集合的好方法

第一个或第二个收集是删除收集的正确方法? 我觉得这是第二个,但第一个更容易使用。 是否可以使用承诺来缓解代码的读取? 第一种方法: beforeEach((done) => { //Before each test we empty the database //Remove Roles Role.remove({}, (err) => {}); //Remove Users User.remove({}, (err) => {}); // Remove Workouts Workout.remove({}, (err) => {}); // Create user Role.create({"name" : "Administrator"},(err, adminRole) => { User.create({ firstname : "***", businessId: "1", lastname : "***", email : "***", roles:[adminRole]}, […]

我需要一个mongoose模型或者直接从mongoose那里得到它

我有一个模型在文件models/Model.js是这样的: const mongoose = require('mongoose') const modelSchema = mongoose.Schema({ name: String }) const Model = mongoose.model('Model', modelSchema) module.exports = Model 然后,当我使用它,我像任何其他模块导入它: const Model = require('../models/Model') 我的问题是:如果每次我require一个模块的代码执行(在这种情况下,它会“运行”每次我导入Model.js ),是否更有效率(或至less更有意义)导入它喜欢这个?: const mongoose = require('mongoose') const Model = mongoose.model('Model')

Mongoose findByIdAndUpdate()查找/返回对象,但不更新

我正在尝试使用此代码查找和更新: exports.updatePlot = async (req, res) => { let modifications = {}; modifications.name = req.body.name; modifications.grower = req.body.props.grower; modifications.variety = req.body.props.variety; modifications.planted = req.body.props.planted; const id = req.body.props.id; try { const updatedPlot = await Plot.findByIdAndUpdate( id, { $set: { modifications } }, { new: true } ); res.json({ updatedPlot }); } catch (e) { return […]

find一个或用Mongoose创build

我有 Page.findById(pageId).then(page => { const pageId = page.id; .. }); 我的问题是,如果没有给出页面ID,它应该只是采取第一个可用的页面给出了一些条件,这是由 Page.findOne({}).then(page => { const pageId = page.id; .. }); 但如果没有find页面,它应该创build一个新的页面,并使用它,这是完成的 Page.create({}).then(page => { const pageId = page.id; .. }); 但是,我怎么把所有这些结合到尽可能less的几行呢? 我有很多逻辑在里面 page => { … } 所以我非常想做这个聪明的,所以我可以避免这样做 if (pageId) { Page.findById(pageId).then(page => { const pageId = page.id; .. }); } else { Page.findOne({}).then(page => […]

Node.js MongoDB – 如何使用Mongoose更新多个文档?

我有一个users集合,每个user都有一些联系人。 当user删除他们的帐户时,我希望这个用户的ID将被删除从这个用户连接的所有用户的联系人数组中。 我已经试过这个Model.Update查询,但它不起作用。 这是我的代码到目前为止: User.update({'userId':{ $in: userIds }, $pullAll: {'contacts': [myId] },'multi': true },function(err, count) { if(err){ console.log(err); }else{ console.log(count); } });

我怎样才能生成mongoose的孩子模型

我试图模拟以下。 我有一个叫做Brick的parent model ,它有一些属性。 将有5 +砖,将都有自己的具体属性,这也是需要的。 我希望以后能够select某个客户ID的所有砖块,无论types是什么(TwitterBrick,FacebookBrick等等)。 var mongoose = require('mongoose'); var Schema = mongoose.Schema; // set up a mongoose model module.exports = mongoose.model('Brick', new Schema({ type: String, userid: { type: String, required: true}, animationspeed: { type: Number, min: 1, max: 100 }, socialsite: String, // none, twitter, instagram socialsearchtags: String, tagline: { type: String, […]

Mongoose TypeError:用户不是一个构造函数

我试图添加一个子文档与Mongoose和MongoDB的父架构,但是我被引发以下错误: TypeError: User is not a constructor 这是基于Mongoose关于子文档的文档 ,我认为一切都是一样的。 我怎样才能进一步debugging呢? 路由器 // Add a destination to the DB router.post('/add', function(req, res, next) { let airport = req.body.destination let month = req.body.month let id = (req.user.id) User.findById(id , function (err, User) { if (err) return handleError(err) function addToCart (airport, month, id) { var user = new […]

在db.collection.findOne中传递variables({parm:value}

我正试图创build一个方法,将从基于参数和值类似的集合中获取logging。 其中parm就是这个模式中的_id字段。 getRecord('_id', '1234567876543') getRecord(parm, value){ db.collection.findOne( { parm : value } , function(err, item) { if (err) { console.error(err); }else if (item === null ) { console.error('record does not exist'); }else { Record = JSON.stringify(item); } }); } 发生什么事情是这个代码试图从不存在的表中取出列的parm,返回的logging每次都不存在。 如何在findOne查询中传递参数的值?

电影不是一个构造函数 – mongoose

我正在使用MEAN堆栈,并尝试使用Mongoose将数据保存到MongoDB数据库。 但是,我不断收到错误“电影不是构造函数”为我的模型。 但是,这是mongoose文件显示它,所以我不知道我在做什么错了.. 请帮忙! Movie.js let mongoose = require('mongoose'); let MovieSchema = new mongoose.Schema({ title: String, genre: String }); export let Movie = mongoose.model("Movie", MovieSchema); route.js import express = require('express'); import mongoose = require('mongoose'); let Movie = require('../models/Movie'); let router = express.Router(); router.post('/movies', function(req, res, next) { let new_movie = new Movie(req.body); new_movie.save(function(err, movie) { […]

在MongoDB和Mongoose中保存时间序列数据

我正在使用Node.js,MongoDB和mongoose,我试图存储实时数据。 我想以不同的时间间隔存储数据。 例如从0.1赫兹到30赫兹。 这个想法是有一个二维数组与分钟和秒,每个元素是一个数组可以存储尽可能多的值,因为它想要的。 (30为30赫兹)使用这种方法我的mongoose计划看起来如下: var someTestSchema = new Schema({ dataType: Number, // some Identifier data: [ { minute: Number, values: [ { second: Number, values: [ { timestamp: Date, value: String, } ] } ], }, ], 首先,我不确定我是否正确执行了Schema,以及如何对数组索引进行build模。 其次,我现在如何使用mongoose来存储这些数据? 我必须硬编码“分钟”和“秒”数组吗? 谢谢你的帮助!