Articles of mongoose

mongoose不创build文件

我在ubuntu 16.04上使用了nodejs(6.2.1)和mongoose(4.4.16)和mongodb(2.1.21),并创build了一个registry单,但是当我提交mongoose时,并没有创build这个doucment,并且请求继续等待。 请帮我解决这个问题。 下面是文件结构 意见是在app-server文件夹,这是完美的,所以我不包括该结构 app-api ├── controllers │ └── users.js ├── models │ ├── db.js │ └── users.js └── routes └── index.js 路线/ index.js var express = require('express'); var router = express.Router(); var ctrlUsers = require('../controllers/users'); router.get('/user', ctrlUsers.userInfo); router.post('/signup', ctrlUsers.userSignup); module.exports = router; 车型/ db.js var mongoose = require( 'mongoose' ); var mongoURI = […]

如何删除mongoose文档并从另一个模型引用它?

我有以下模式: const userSchema = new Schema({ email: { type: String, unique: true, lowercase: true }, password: String, favorites: [{ type: Schema.Types.ObjectId, ref: 'image' }] }) const imageSchema = new Schema({ description: String, title: String, url: String }) 当我添加一个图像,我添加一个新的图像文档,然后我findlogin的用户,并更新他的collections夹,如下所示: exports.addImage = function(req, res, next) { const email = req.user.email; imageData = req.body; imageData.url = req.body.media.m; const […]

Mongodb $ lookup不能使用_id

我们试着用这个查询,返回查找是空的 db.getCollection('tests').aggregate([ {$match: {typet:'Req'}}, {$project: {incharge:1}}, {$lookup:{ from: "users", localField: "incharge", //this is the _id user from tests foreignField: "_id", //this is the _id from users as: "user" }} ]) 返回json [ { "_id": "57565d2e45bd27b012fc4db9", "incharge": "549e0bb67371ecc804ad23ef", "user": [] }, { "_id": "57565d2045bd27b012fc4cbb", "incharge": "549e0bb67371ecc804ad21ef", "user": [] }, { "_id": "57565d2245bd27b012fc4cc7", "incharge": "549e0bb67371ecc804ad24ef", "user": [] […]

如何修改一个Mongoose查询的输出?

我在我的MongoDB集合products有一个名为date_expired 。 它是type: date并存储datestring。 我想检索所有产品,并将结果中的date_expired属性更改为现在剩下的小时数。 我该怎么做呢? 这和Laravel的getter()类似…?

省钱整数

我们在Mongoose模式中有下面的代码试图将钱转换为整数保存在MongoDB中: amount: { type: Number, get: getAmount, set: setAmount, required: true} function setAmount(num) { return num * 100; } function getAmount(num) { return (num / 100).toFixed(2); } 不过节省了64.49我们仍然在MongoDB文件中得到这个结果: "amount": 6448.999999999999 我们如何解决这个问题?

Mongoose实例方法`this`不参考模型

编辑:我已经发现console.log(this)在setPassword方法内运行只返回哈希和盐。 我不确定为什么会发生这种情况,但是这表明this并不是指它应该的模式。 我有以下实例方法的架构: let userSchema = new mongoose.Schema({ username: {type: String, required: true}, email: {type: String, required: true, index: {unique: true}}, joinDate: {type: Date, default: Date.now}, clips: [clipSchema], hash: {type: String}, salt: {type: String} }) userSchema.methods.setPassword = (password) => { this.salt = crypto.randomBytes(32).toString('hex') this.hash = crypto.pbkdf2Sync(password, this.salt, 100000, 512, 'sha512').toString('hex') } 实例方法在这里被调用,然后用户被保存: let user = […]

recursion调用node.js中的asynchronous函数

我写了一个recursion查询来以数据库级别或分层方式更新数据。 我写了这个代码: let updateInvitationRewards = function(parent, level, callback) { Service.customer.getOneCustomer({ _id: parent }, {}, {}, function(err, data) { console.log(data.email); level–; if (data.parent) { parent = data.parent.id; } else if (level == 0 || data.parent == null) callback("end"); updateInvitationRewards(parent, level–, callback); }); }; updateInvitationRewards(parent, level, function(string) { console.log(string); cb(); }); 这个查询是这样的错误: Error: Callback was already called. […]

mongoose:.save不是一个函数

我是非常新的,我已经浏览了档案,但是这个代码里面发生了什么事情,这让我无法回避。 我使用快速生成器来创build一个日历应用程序,现在我想把它连接到MongoDB。 到Mongo的实际连接正在工作,但我无法保存文档。 我的global.js (我正在运行我的前端Javascript)的相关部分如下所示: $(document).ready(function() { var ev = new Event({ date: "a6_13_2016", time: 900, description:"Fencing"}); ev.save(function(err) { if (err) console.log(err); else console.log("Success!") }) 这是我得到的“TypeError:ev.save不是一个函数”的消息。 我的模型/ Events.js看起来像这样: var mongoose = require('mongoose'); var eventSchema = new mongoose.Schema({ date: String, time: Number, description: String }); module.exports = mongoose.model('Event', eventSchema); 我的路线/ events.js看起来像这样: var express = require('express'); var […]

mongoose计数返回数组的数量?

User.find({job:"developer",sick:1},callback); 上面的查询给了我数组数的对象,但我只需要它的长度。 我试过User.count({job:"developer",sick:1},callback); 它不工作。 我知道我可以使用native .length原生函数,但我想用count()来优化我的查询。

在inputMongoose的数组的基础上find元素

型号是 UserSchema = new Schema({ email: String, erp_user_id:String, isActive: { type: Boolean, 'default': true }, createdAt: { type: Date, 'default': Date.now } }); module.exports = mongoose.model('User', UserSchema); 现在我有一个string列表,[erp_user_id]的列表,我想要search所有用户在这个列表中包含erp_user_id。 就像是 var inputArray = ['1234','324324','54345']; User.find({inputArray.contains(erp_user_id)}).exec(function(err,users){ user;// <—- list of users expected result })