Articles of mongodb

如何通过mongoose中的单个键迭代多个值

我有一个使用MongoDB作为数据库的Web应用程序,我试图迭代通过一个单一的属性,护照内的多个值。 这是我的模式: var EmployeeDBSchema = new Schema({ /* Passport tab schema */ passportInfo: { passportDetails: [] }, 这就是Robomongo的外观: 我试着检查,如果这可以作为一个数组检索,所以我做了下面: console.log(_.map(results, _.property('passportInfo'))); passportArr = _.map(results, _.property('passportInfo')); console.log("is passport array? " + _.isArray(passportArr)); 结果: 现在,因为它是积极的,我试着迭代通过它像一个正常的数组使用ff。 码: _.forEach(passportArr, function (value, key) { _.forEach(passportArr[key], function(value2, key2){ console.log(key2 + " >> " + value2); }); }); 但是,我得到的是这样的: 我怎样才能得到passportExpiry,passportNumber和countryOfOrigin的值? 我真的很难过这个。 希望有人能帮助。 […]

mongoose:find具有特定条件的文件

我正在编写一个新闻网站。 我为特定的作者/记者做了一个专门的页面。 此页面将包含他/她的所有post。这里是代码: 在app.js中, app.get("/author/:id", function(req,res) { //latest contains all posts Latest.find({author:"Richard Mann"}).sort([['_id', -1]]).exec(function(err,allLatest) { if(err) { console.log(err); } else { res.render("showAuthor", { latest : allLatest}); } }) }) 此代码正常工作,并显示特定作者的post。 但是,如何为所有作者做到这一点(同时避免DRY代码)? 在find指定作者的文档时,我应该申请什么条件?

mongoose填充多个文件不起作用?

以下是我的模特。 我想从碎片集合中填充数据到我的stream中。 stream: var mongoose = require("mongoose"); var mongoosePaginate = require('mongoose-paginate'); var Schema = mongoose.Schema; // Declare schema var streamSchema = Schema({ user_id: { type: String, required: true }, public_key: { type: String }, private_key: { type: String }, title: { type: String, required: true }, description: { type: String, required: true }, particle: [{ […]

将MongoDB / ExpressJS查询存储到数组中并显示到HTML表中

我正在尝试学习如何获取已经存储在MongoDB中的数据,并将其显示为HTML中的表格。 我从来没有使用过HTML或JavaScript,所以我决定首先在我的HTML代码中创build一个脚本,并使用循环显示一个简单的表格: <div> <script> var words = ["One", "Two", "Three", "Four", "Five", "Six", "Seven"]; var numbers = [1,2,3,4,5,6,7]; document.write('<table>'); for (var i =0; i < words.length; i++){ document.write('<tbody><tr><td>' + words[i] + '</td>' + '<td>' + numbers[i] + '</td></tr></tbody>' ); } document.write('</table>'); </script> </div> 我得到的输出是: One 1 Two 2 Three 3 Four 4 Five 5 Six […]

无法用Node / Express / Mongodb读取null的属性'find'

我正在按照教程来创build一个简单的Node / Express / Mongoose REST API。 我在一个terminal运行mongod,在另一个terminal运行我的节点应用程序。 我的应用: // BASE CONFIG // ========================================================= var express = require('express'), bodyParser = require('body-parser'), util = require('util'), app = express(), port = process.env.PORT || 8000, // database dbURI = 'mongodb://localhost/nodeSpace', mongoose = require('mongoose'), db = null, // models Ship = require('./models/ship'); // configure use of bodyParser this lets […]

Mongoose用$ regexsearch所有的字段

比如说,我有以下模型: var advertise = mongoose.Schema({ username: String, text: String, locations: Array, days: Array, phone: Object, images: Array, age: Number, height: String, sex: String, categories: Array, targetAudience: Array, prices: Array, creator: String, hairColor: Object, eyeColor: Object, breastSize: Object, bodyType: Object, advertiseType: Object, created: {type: Date, default: Date.now}, is_active: {type: Number, default: 0}, order_id: String }); 现在我有一个名为searchString的值。 […]

Angular 2 Service返回对象对象

提前感谢您的时间,我试图展示我从当地的mongodbcollections中收集的一个集合。 http:// localhost:8080 / player / all是我用postmastertesting时返回正确数据的API端点。 这是一个对象数组。 HTML只显示每个对象的[object Object]: [object object],[object object],[object object],[object object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object] [对象对象],[对象对象],[对象对象],[对象对象] 服务或组件是否有问题? 后端是一个快递/节点的应用程序 player.component.html <div> {{allPlayers}} </div> player.component.ts import { Component, OnInit } from '@angular/core'; import {AuthService} from '../../services/auth.service'; import {PlayerService} from '../../services/player.service'; import {Router} from '@angular/router'; @Component({ selector: 'app-player', templateUrl: './player.component.html', styleUrls: ['./player.component.css'] […]

nodejs一次渲染多个页面

我有一个contact页面,可以把他们的contact details和message 。 一旦他们把他们的信息,它被保存到mongodb collection 。 如果没有错误,我想清空联系表格,并显示一条popup消息,说谢谢。 现在,如果我使用 app.post("/contact", function(req, res){ var name = req.body.name; var email = req.body.email; var phone = req.body.phone; var message = req.body.mess; var contact_message = new Contact({name:name,email:email,phn_no:phone,message:message}); contact_message.save(function (err) { if (err) { return err; } else { console.log("Contact details saved"); res.render("contact"); } }); 上面的代码只是呈现相同的contact page ,没有谢谢你的消息。 如果我尝试创build一个新的ejs页面( 例如:thankyoupage ),并使用以下方式发送消息来呈现该页面: […]

mongoose document.validate在从4.4x更新到^ 4.5.1之后抛出RangeError

我最近更新了mongoose4.5.1或任何以上的真的。 Document.validate现在抛出“RangeError:超出最大调用堆栈大小”当我的模式具有embedded式文档数组时,会发生这种情况。 虽然如果数组是空的,validation是成功的。 所有我的模式都是如此。 这是我的代码的一个例子 var userSchema = new Schema({ name: { type: String, required: true }, roles: { type: [userRoleSchema]: default [] } }) var userRoleSchema = new Schema({ type: { type: String, required: true }, organization: { type: Schema.Types.ObjectId, ref: 'organization', required: false }, }) // Later when I call this userDocument.validate((err) => […]

为什么我的快递API不响应?

背景 我正在使用NodeJs v7testing一个简单的Hello World应用程序,并在cloud9中进行expression。 我试图让我的例子工作,但我失败了。 问题 我所有的cloud9configuration都很好,所以这不是问题。 问题是我的应用程序。 当我debugging,路线“api / v1 / HolaBananas”永远不会被调用,我不知道为什么! 甚至最糟糕的是,当我提出请求时,浏览器只是挂起,就像等待服务器的回答,永远不会到来! 码 index.js有初始化和启动代码。 对于我来说,为了模块化的原因,我保持与api.js分开是非常重要的。 index.js "use strict"; const express = require("express"); const app = express(); app.use("/api/v1", require("./api.js")); app.listen(process.env.PORT); console.log(`Server listening on port ${process.env.PORT}!`); api.js只包含路由和它们应该做的事情。 api.js "use strict"; const express = require("express"); module.exports = function() { const api = express.Router(); api.get("/HolaBananas", function(req, res){ […]