Articles of mongodb

Node,Mongoose:删除查询结果中的json元素

我得到这个奇怪的行为。 这是事情:我做一个数据库查询,并希望删除查询返回的json的元素。 所以这似乎不工作(即元素不被删除), var user=json; delete user.element; 而这个工作 var user={element:json.element,blement:'stuff'} delete user.element;

限制在Sails.js模型中设置的字段

所以我有一个像这样的字段的模型: // … slug: { type: 'string', required: true, alphanumeric: true, minLength: 3, maxLength: 16 }, loggedinAt: 'date', // … 我正在使用Sails蓝图结构,以便自动映射所有内容。 但是,有时我有像loggedinAt严格内部的字段,我不希望他们能够由用户设置。 如果我使用loggedinAt字段发布post请求,它将会设置它。 我怎样才能限制呢?

mongodb组和总和?

在过去的几个小时里,我一直在为这个问题烦恼,不能把头绕在上面。 也许有人可以帮忙。 我收集了以下内容。 { "smallparts": [ { "quantity": "10", "part": "test1" }, { "quantity": "10", "part": "test2" } ] }, { "smallparts": [ { "quantity": "10", "part": "test3" } ] }, { "smallparts": [ { "quantity": "10", "part": "test1" }, { "quantity": "10", "part": "test2" } ] } 当尝试以下添加量我不能正确。 collection.aggregate( // Unwind the array { […]

无法使用mongoose将对象添加到MongoDB中的数组中?

我正在创build一个nodejs和mongodb的应用程序,我有这样的: var mongoose = require('mongoose'); var db = mongoose.connect("mongodb://localhost/dbTienda"); var esquemaUsuarios = new mongoose.Schema({ nombre: String, apellido: String, email: String, contrasena: String, notificaciones: Number, notificacionesLista: [String], articulos_vendidos: Number, productos: [{ nombre: String, imgPath: String, precio: Number, ciudades: [String], tags: [String], descripcion: String }] }), usuarios = db.model("Usuarios",esquemaUsuarios); 问题是我不能在productos中添加任何东西,我的想法是做一些这样的 productos: { {nombre:XXXXX,imgepath:XXXXX,precio:XXXXX,ciudades:{ XXXXX },tags:{ XXXXX },descripcion: […]

有没有办法避免使用Mongoose进行硬编码?

考虑下面的代码,其中“团队”是一个mongoose模型。 var Team = mongoose.model( 'Team' ); Team.find({'GroupName':gname}, function (err, teams) { // Some code } 如何在mongo中select硬编码“GroupName”:gname时去掉这个硬编码?

Async-WaterFall不按预期工作

瀑布函数有两个调用,但第二个不等待第一个完全完成。 第一个有一个mongodb.find()调用。 这是async-waterfall函数 app.get("/news", function(req, res) { async.waterfall([ function (callback) { var blogs = tendigiEngine.getAllBlogs(callback); callback(null, blogs); }, function (blogs, callback) { var array = tendigiEngine.seperateBlogs(blogs, callback); callback(null, array ); } ], function (err, result) { // result now equals 'done' console.log("done"); console.log(result); }); }); 这里是被调用的两个函数:getAllBlogs(): exports.getAllBlogs = function() { Blog.find(function(err, theBlogs){ if(!err) { return […]

如何知道过期属性被删除的文档?

我在Node.js中实现了一些validation过程。 我有每个validation存储在我的MongoDB的MongoDB中,并为其设置expires属性,所以它会被删除一段时间后。 喜欢这个 var verification = new Schema({ // something else createdAt: { type: Date, expires: '1d', default: Date.now, }, }); 但是我想知道这个文档何时被删除。 所以我可以做一些其他的事情,比如删除与validation有关的文档。 我试过使用post()钩子, verification.post('remove', function(){ // do something else }; 但似乎这是行不通的,因为它在应用程序级别上。 文档被MongoDB直接删除,所以remove()不会被调用。

MongoDB + Node.js:如何从一个外部文件使用架构为另一个架构?

我有一个类(或模型),需要使用另一个类作为其属性的一部分,如下所示。 **两个文件的标题** var mongoose = require('mongoose'), Schema = mongoose.Schema; item.js module.exports = function() { var ItemSchema = new Schema({ name: String, cost: Number }); mongoose.model('Item', ItemSchema); } receipt.js ItemModel = require('./item.js'); var Item = mongoose.model('Item'); module.exports = function() { var LineItemSchema = new Schema({ item: Item, amount: Number }); var LineItem = mongoose.model('LineItem', LineItemSchema); var […]

MissingSchema错误:架构尚未注册模型“用户”

每当启动我的应用程序时,我总是收到这个错误: –MissingSchema错误:架构尚未注册模型“用户” – 我正在从Simon Holmes的“Mongoose for Application Development”一书中学习一个教程。 我在第5章“与数据交互 – 创build” 这是我的代码: app.js: var express = require('express') , routes = require('./routes') , user = require('./routes/user') , project = require('./routes/project') , http = require('http') , path = require('path'); db.js: //Creating the Application Schemas: //==================================== //User Schema: //=============== var userSchema = new mongoose.Schema({ name: String, email: {type: […]

mongodb增量编号 – 500内部服务器错误

我正在尝试用节点和mongodb对我的文档的id进行编号。 我得到一个500内部服务器错误:'无法读取属性'seq'null。 //提交一张票 – 这是返回一个500错误 – 不更新ID router.post('/ticketform', function(req, res){ var db = req.db; function getNextSequence(name, callback){ db.counters.findAndModify( { query:{ _id:name}, update:{$inc:{seq:1} }, new:true }, callback ); } getNextSequence('ticket', function(err, obj) { if (err) console.error(err); db.users.insert( { '_id': obj.seq, 'firstname':req.body.firstname, 'lastname':req.body.lastname, 'email':req.body.email, 'phone':req.body.phone, 'issue':req.body.issue }, function(err,docs) { if (err) console.error(err); console.log(docs); res.end(); }); }); });