Articles of mongoose

Mongoose更新父文档添加现有的子文档ID

我有两个mongoose模型。 类别和子类别。 这些模型使用meanjs.org中的login进行自动加载。 category.model.js如下 … const Schema = mongoose.Schema; const CategorySchema = new Schema({ name: { type: String, index: { unique: true, sparse: true }, validate: [validateProperty, 'Please enter Category Name !'] }, description: { type: String, trim: true }, subCatagories: [ { type: Schema.Types.ObjectId, ref: 'SubCategory' } ], updated: { type: Date }, created: […]

Express / Mongoose项目中的HTTP Get和Post请求中缺less内容

我有以下文件。 我有一个recipe.js文件,概述了食谱的Mongoose Schema和食谱的注释。 代码如下: const express = require('express'); const mongoose = require('mongoose'); const User = require('../models/user'); let Schema = mongoose.Schema; let commentSchema = Schema({ rating: { type: Number, // required: true, min: 1, max: 5, }, recipeItem: { type: mongoose.Schema.Types.ObjectId, ref: 'Recipe' }, comment: { type: String, // required: true }, postedBy: { type: mongoose.Schema.Types.ObjectId, […]

Mongoose Update或Query的函数重用

我是nodejs,mongoDB的新手,我正在编写一个应用程序来处理来自mongoDB中多个集合的数据,这些数据与数据无关。 有没有办法避免为每个模型或集合写我的CRUDfunction? 我只想编写每个CRUD操作的一个函数,并为不同的集合或模型重用相同的函数。 我有这个在我的crudFunctions.js var mongoose = require('mongoose'); var records = mongoose.model('testCollection'); exports.listAllRecords = function (req, res) { records.find(function (err, docs) { if (err) throw err; res.json(docs); }); 在我的routes.js module.exports = function(app){ var crud = require('../controllers/crudFunctions'); app.route('/api/data') .get(crud.listAllRecords) }; 上面的代码只适用于一个模型logging,但我想为我的数据库中的不同集合有不同的模型。 问题是,我怎样才能使用类似的东西(这可能是不正确的,但我希望你了解这个问题),在我的routes.js : module.exports = function(app){ var crud = require('../controllers/crudFunctions'); app.route('/api/data') .get(crud.customFunction(function(myModel, results) { myModel = […]

在Mongoose模型中运行一个字段的validation

我需要运行一些特定字段的validation器,而不影响模型validation状态。 如何才能做到这一点? 上下文是有一个validation钩用于validation一个字段( foo ),但它需要确保( bar )是第一个好的。 … bar: { required: true, type: Number, min: 2, max: 10, validator: isInteger } … function validateFoo(foo, bar) { // the code below will throw if bar is not an integer between 2 and 10 … } schema.pre('validate', function (next) { if (/* check if model.bar is valid […]

在mongoose.find中逐字逐句

我有这样的路线: router.get("/search/:value", function(req, res){ Imgs.find({tags: req.params.value}, function(err, f){ if(err){ console.log(err); } else { res.render("Images/index.ejs", { playlists: f }); } }); }); 图像模式 title: String, image: String, description: String, tags: [ ] 当用户添加一个图像,他可以select添加标签,我试图find一个基于其标签的图像。 我已经添加了一个search框到一个页面。 问题: 我只能find具有完全相同标签的图像。 有什么方法可以逐字search吗? 编辑1: 嗨,大家好,我不认为我解释正确的问题,我真的很累,对不起。 问题2: 当我在search框中input时,例如: “ 暴雨 ” 我会得到的价值是“ Rain Florest ”作为一个句子,但是我想search那些标签为“ Rain ”或者“ Florest ”的图片, 最终编辑 我使用了search值,然后应用到选定的答案。 var arrayOfTags […]

mongoose,不能从数据库打印产品

我在console.log或数据库中的res.json打印项目有问题。 我究竟做错了什么 var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/test'); var Schema = mongoose.Schema; var productSchema = new Schema({ title: String, price: Number }); var product = mongoose.model('product, productSchema'); mongoose.connect(db); var db = 'mongodb://localhost/product'; router.get('/books', function(req, res) { console.log('getting all products'); product.find({}) .exec(function(err, product) { if (err) { res.send('errror'); } else { console.log(product); res.json(product); } }) }); 数据库产品的名称是: […]

在Node.js / MongoDB应用程序中添加默认pipe理用户的最佳方式是什么?

所以我有一个在Nodejs中开发的应用程序,正在使用Mongodb / Mongoose数据库。 除应用程序外,还有一个pipe理面板,pipe理员可以pipe理从常规用户添加的所有数据。 在用户架构中,我有以下内容: role: { type: String, default: "user", enum: ["user", "admin"] }, 我的问题是什么是最好的/安全的方式来添加一个或两个pipe理员用户,他们可以使用login表单login?

mongoose,创造一个新的模型

我有型号的产品,他没有问题地添加到分贝“产品” router.post('/create', function (req, res, next) { console.log(req.body); var newProduct = { title: req.body.name, price: req.body.price, description: req.body.description, quantity: req.body.quantity, // category: req.body.category } var product = new Product(newProduct); product.save(function (err, product) { if (err) { res.status(404).json({ message: 'Can not create this product' }) } else { console.log('added'); res.send(product); } }); }); 现在我有模型类别我创buildhttp.post和所有工作,但我不知道这个东西发送的东西是保存在数据库mongo router.post('/create', function […]

mongoose在insertMany上重复键错误

我想设置我的testing分贝,插入多个angular色项目 … // ADD 3 roles in first group const roleA1 = { _groupId: groups[0]._id, name: 'admin', description: 'can RW group, user', users: [], permissions: permissions1 }; const roleA2 = { _groupId: groups[0]._id, name: 'manager', description: 'can R group, can RW user', users: [], permissions: permissions2 }; const roleA3 = { _groupId: groups[0]._id, name: 'employee', […]

Mongoose / MongoDB – 引用另一个没有ObjectId的模式

我目前有两个模式。 var carSchema = new mongoose.Schema({ id: { type: Number, unique: true, required: true }, make: { type: String, required: true }, model: { type: String, required: true }, year: { type: Number, required: true, min: config.MIN_YEAR, max: config.MAX_YEAR }, color: { type: String }, price: [ // don't know what to put here… ], […]