Tag: mongodb

Mongoose用.find()返回空数组

我试图从我的应用程序使用Mongoose模块查询我的MongoDB数据库中的数据,返回的是一个空的数组。 SO中最常见的答案是在创build模型时,Mongoose将集合名称复数化。 不过,我相信我在那里没有问题(如果实际上我做错了,请给我解释一下)。 在这一点上,我尝试过的所有操作都是使用Result.find({},callback)select所有条目,但是同样返回一个空数组。 当我查询命令行上的数据时,我得到了预期的结果。 下面我简单地检索了一个条目。 命令行上的Mongo shell: > db.getName() kaplanFfl > db.getCollection('results') kaplanFfl.results > db.results.findOne({ Owner: 'Sample'}) { "_id" : ObjectId("5a24c90b46521500830aa042"), "Owner" : "Sample", "Pts" : 81.5, "Week" : 1, "SeasonAvg" : 86, "Lst8_Avg" : 92, "Lst4_Avg" : 91, "Mean" : 82, "High" : 116, "Low" : 55, "Diff" : 61, "Dev" : 16.49141822, […]

带前钩的mongoose挽救计划不起作用

我是Nodejs和Mongoose的新手,事情一切正常,直到新版发布的承诺折旧的mongoose。 我看到它build议使用蓝鸟,我正在尝试做。 我有以下代码: app.post('/users', (req, res) => { var body = _.pick(req.body, ['email', 'password']); var user = new User(body); user.save().then(() => { return user.generateAuthToken(); }).then((token) => { res.header('x-auth', token).send(user); }).catch((e) => { res.status(400).send(e); }) }); 和前钩: UserSchema.pre('save', function (next) { var user = this; if (user.isModified('password')) { bcrypt.genSalt(10, (err, salt) => { bcrypt.hash(user.password, salt, (err, […]

是否可以通过这种方式访问​​node.js中的mongodb?

我是编程新手,试图做一点尝试,仍然苦苦思索从我的代码中访问mongoDB的最佳方式。 在堆栈溢出中,我已经看到了一些post,但是他们或多或less都要求加载mongo所需的代码包含在每个.js文件中。 我想避免这一点,以保持只有一个文件访问我的数据库的代码。 请注意,我正在使用“mongo-factory”模块。 下面的代码是可以接受的吗? 我创build了我所谓的数据库对象“producer”,即database.js var mongoFactory = require('mongo-factory'); function Database(close,callback) { mongoFactory.getConnection(<connection string>).then(function (database) { callback(database.db(<db name>)); if(close) database.close(); }).catch(function (err) { console.error(err); }); } module.exports = Database; 然后,当我想从我的任何文件访问数据库,我可以做到以下,避免在这里引入数据库特定的参数和mongo工厂的要求: var Database = require('./database'); var callback_actOnDatabase = function (db) { db.collection….. do something here }; var d = new Database(false, callback_actOnDatabase);

mongoosesorting和search文件由填充字段

我收集用户,新闻和用户新闻,“用户新闻”填充到“用户”和“新闻”。 我可以通过“user.name”或“news.title”来sorting和search“user-news”的文档吗? const usersSchema = new Schema({ name: String }) const newsSchema = new Schema({ title: String }), UsersNewsModel.find(queryObj) .populate('user', 'name') .populate('news', 'title') .sort({ 'user.name': -1 }) .exec((findError, records) => {…}

如何使用asynchronous函数?

目前正在开发一个从客户端服务器向后端服务器发出axios请求的应用程序。 有时候应用程序更新正确,有时会滞后/不会更新,直到下一个请求。 任何想法为什么? 我的代码有什么问题吗? 我会尝试添加相关的所有内容。 该应用程序是一个购物清单,用户可以通过Google oauth简单login。 然后,他们从React State和MongoDB数据库中添加/删除项目。 每次添加/删除项目时,都会从数据库中提取列表的状态。 应用组件 import React from 'react'; import ListForm from './ListForm'; import ListItem from './ListItem'; import * as helpers from '../helpers'; class App extends React.Component{ state = { currentUser: {}, items: [] } componentDidMount() { helpers.fetchUser() .then(data => { this.setState({ currentUser: data, items: data.shoppingList }, () => […]

mongoose设置默认值并插入数据库

我对Mongo / Mongoose非常陌生。 情况是这样的:设置和更新默认值find所有条目,但我想我错过了一些东西 它正在Web视图上工作,但是在find多个条目后,它不会显示在数据库中。 我必须单击Web视图上的每个条目以将其保存到数据库 var gcalbookingSchema = new Schema({ gcalId: String, training: {type: String, default: "work out" }, summary: String, email: String, mobile: {type: String, default: "12345678" }, datetime: Date, notification: {type: String, default: "24 hours" }, attendees: [[]] }); 这是我的代码来查找多个条目并将其显示在Web视图上。 我尝试使用选项与setDefaultsOnInsert:true,但它扔了callback.apply不是一个函数 app.get("/api/gcal", function (req, res) { var gemail = req.query.email; var options […]

Mongodb聚合函数,具有group by和having子句

我在Mongodb收集名为交易,存储费用或收入以及银行的详细信息和date。 我想显示当月的总费用。 例如,如果我存储了3笔交易,每笔交易有12个月的10美元20美元和11月份的20美元,我应该得到30美元的产出。 我已经将date存储为ISOdate对象。 在mongodb的聚合函数中,我应该如何比较数据库中的月份与当前月份? 以下是我想要获取当月总费用的代码: result = await transactionCollection.aggregate([{ $group : { _id : {trans_type : "$transaction_type"}, amount : {$sum : "$amount"} } }, { $match : {date.getMonth() : new Date().getMonth()} }]).toArray() 任何提示或build议深表感谢。

从MongoDB获取数据并显示在前端

我刚开始学习NodeJS作为我的应用程序的后端,但这是我第一次使用服务器端技术。 我试图build立一个简单的应用程序,这是一个我想插入数据到数据库(mongodb),并获得数据显示在前端的forms。 我正在使用快速句柄。 数据被成功保存到数据库,但是当我试图从数据库中获取数据显示在前端没有任何反应。 有谁知道我的代码可能是错的? 谢谢!! //代码从这里开始 var express = require('express'); var router = express.Router(); var mongoose = require('mongoose'); var assert = require('assert'); var url = 'mongodb://felipe:teste@ds033125.mlab.com:33125/form'; mongoose.connect(url); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index'); }); //将数据插入数据库(MONGODB) router.post('/insert', function(req, res, next) { var Schema = mongoose.Schema; var itemSchema = new Schema({ […]

如果主站closures,如何连接到从站 – 复制

我正在MongoDb中进行数据复制,目前我有一个主节点和多个从节点。 所有这些都运行在不同的端口,但他们可以在不同的机器上(我正在testingatm)。 我的问题是,我将如何去连接这些从我的代码? 目前,我只有一个db类的实例,它连接到localhost上的x端口。 很显然,如果这个节点失败了,我想在本地主机的y端口上使用slave,如果失败的话,在localhost上的z端口。 我应该使用单独的数据库对象进行不同的连接吗?

灵活的JavaScriptfunction(适用于MongoDB)

我正在为MongoDB进行一些Map / Reduce查询,并试图完成以下内容(简而言之)。 m = function() { this.convert = function(val) { return val+1; } emit(convert(this.age), this.doesWearGlasses); } r = function(k, v) { count = 0; for(var i = 0; i < v.length; i++) { count += v[i]; } return count; } if(tuned) { m.convert = function(val) { return val; } } /** * Continue to […]