Tag: mongoose

nodejs如何执行原始mongo查询string

我正在使用nodejs和mongoose。 另一个函数将为我提供一个原始的MongoDB查询作为string,我需要直接在数据库上执行,并传回结果。 我需要的是类似于执行mysql连接对象上的mysql查询string,但我不知道如何做到这一点的mongo。 请帮忙。 我不知道模型,查询可以是任何东西。 这是主要的问题。 甚至像 show collection 这样的东西 在这里是有效的。 我知道这使得它容易受到SQL注入,但在这种情况下,这不是一个问题,所以不要担心。 提前致谢。

在expressjs和JADE环境中可视化数据

我正在试图用d3来显示一些数据,这些数据存储在MongoDB中。 我的问题是关于通过JADE模板为每个数据创builddiv元素的最佳实践,然后调用绘制不同图表的方法。 我的主要问题是,我显示HTML文件后失去了我的数据的引用,我不想再次查询数据库。 架构 # Create Schema executionSchema = new Schema( timestamp: Number, components: [{ uid: String, type: { type: String }, samples: [Number], execution_times: [Number] }] ) 数据最初被检索并提供给JADE模板: 索引咖啡 exports.index = (req, res) -> Execution.find (err, executions, count) -> res.render "index", title: "Debugger", executions: executions return return 之后,index.JADE为执行中的每个component创builddivs [0] – each component in executions[0].components […]

javascript express js通过asynchronous调用

我是新来的js。 我使用快递节点js和mongoose作为mongo orm。 function direct_tags_search_in_db(tags){ var final_results = []; for (var i=0; i<tags.length; ++i) { var tag = tags[i]; Question.find({tags: tag}).exec(function(err, questions) { final_results.push(questions); if (i == tags.length -1 ){ return final_results; } }); } }; 我得到空的结果,因为发现的asynchronous。 但我不知道这是最好的办法。 Appriciate一点帮助,谢谢。

MongoDB模型字段是乘以2个字段的结果

我有一个小问题试图找出哪个是最好的方法来做到这一点: 我有一个表格,可以通过两个单选button以两种不同的方式为用户业务设置定价: 成员,我有两个领域,“每个成员的数量”和“数量”。 数量上,我只有一个字段,“总金额”。 而且我必须将这些数据存储在数据库中名为“价格”的字段中。 所以,如果我提交“按成员”选项的表格,“价格”将是“每个成员的金额”*“数量”的结果。 如果我用“按金额”选项提交表格,“价格”应该是“总金额”字段值。 这里的事情是,我不知道在模型上哪个是最好的方式来pipe理这个“有条件的”东西,所以也许你可以帮助我:D。 谢谢!

删除多个文档并将其传递给callback

我试图find正确的方式来删除多个文件,以后可以访问它们。 要用一个文档实现这一点,你可以使用findByIdAndRemove或findOneAndRemove ,它们都将find的文档传递给callback函数 。 但是,我没有find任何方法来完成与多个文件。 所以这里是我目前的解决scheme: Model.find({}, function(err, docs){ // do some stuff with docs // like removing attached uploaded files (avatars, pictures, …) Model.remove({}, function(err, docs){ // here docs only return the deleted documents' count // i'm unable to perform any kind of operations on docs }) }) 我想知道是否有更好的方法来做到这一点? 谢谢!

用mongoose在一个对象数组中插入一个唯一的对象

我用mongoose在对象数组中插入一个对象。 我的对象是这样的: name: { type: String, unique: true, required: true }, translations: [{ tag: { type: String, unique: true, required: true }, meaning: { type: String, required: true } }] 我想我的代码抛出一个错误,当已经有一个对象在“翻译”具有相同的“标签”值。 我目前正在这样做: Language.update( {name: languageName}, {$addToSet: { 'translations': { tag: aNewTag, meaning: aNewTranslation }}}, { upsert: false }, function(err) { if (err) console.log(err); else console.log('This […]

在Restify中使用testing数据库

我创build了一个简单的Restify服务器,并使用自己的JSONclient通过Mocha开始testing它的function。 当unit testingfunction时,可以设置指示testing设置的ENV var,并连接到相应的mongodb数据库。 但是,当使用JSONClient时,显然,testing已经连接的“运行”API服务器。 是否有任何方法通过开关数据库连接,通过客户端的端到端testingAPIfunction,以不覆盖开发数据库? 编辑:我想我可以添加一个方法沿着“switchDataConnection”的行,将切换到testing数据库,但感觉肮脏和哈克。

mongoose铸错误_id

我想保存一个新用户并添加一些组作为参考。 该组从数据库加载。 var userSchema = new Schema({ email: {type: String, 'default': '', index: {unique: true, dropDups: true}}, password: String, accessToken: String, registerDate: { type: Date, 'default': Date.now}, groups: [{type: ObjectId, ref:'Group'}] }); var groupSchema = new Schema({ name: {type: String, 'default': '', index: {unique: true, dropDups: true}} }); exports.register = function(req, res, next){ var userToRegister […]

validation成功后获取input数据

Iam使用Express NodeJs,护照,连接闪光灯,mongoose 我的问题是: Iam无法理解如何在下一个呈现的页面中检索用户名和密码。 请有人build议我如何做到这一点.. app.js var http = require('http'); var express = require('express'), passport = require('passport') , LocalStrategy = require('passport-local').Strategy, flash = require('connect-flash'), User = require('./routes/userdao.js'); passport.use(new LocalStrategy( function(username, password, done) { User.findOne({ uname: username ,pwd:password}, function(err, user) { if (err) { return done(err); } if (!user) { return done(null, false, { message: 'Incorrect […]

通过Mongoose将对象推入MongoDB subdoc数组

我目前有以下mongoose模型设置: var Customer = mongoose.model('Customer', { firstname : String, lastname : String, phone : String, street : String, city : String, state : String, zip : String, fixed : Boolean, readings: [Number] }); 其使用方式如下: app.post('/api/findcustomer/:customer_id/:customer_reading', function(req, res) { Customer.update({_id: req.params.customer_id}, {$push: {readings: req.params.customer_reading}}, {upsert:true}, function(err, customer){ if(err){ console.log(err); }else{ console.log("Successfully added"); } }); Customer.findOne({ _id […]