Tag: mongodb

mongoose保存callback不起作用

我正在构build一个简单的Web应用程序的服务器,它使用MongoDB后端来存储数据。 我实例化一个新的mongoose连接使用: mongoose.connect('mongodb://localhost:27017/callback-newsfeed-db') 我的MongoDB输出似乎很好: 2017-12-02T21:00:53.277-0800 I NETWORK [thread1] connection accepted from 127.0.0.1:52027 #86 (1 connection now open) 2017-12-02T21:00:53.291-0800 I NETWORK [thread1] connection accepted from 127.0.0.1:52028 #87 (2 connections now open) 2017-12-02T21:00:53.291-0800 I NETWORK [thread1] connection accepted from 127.0.0.1:52029 #88 (3 connections now open) 2017-12-02T21:00:53.292-0800 I NETWORK [thread1] connection accepted from 127.0.0.1:52030 #89 (4 connections now […]

错误:networking使用图像,跳过(docker作曲)

我目前正在尝试使用mongodb进行node express教程https://medium.com/@sunnykay/docker-development-workflow-node-express-mongo-4bb3b1f7eb1e 第一部分工作正常,在哪里build立docker-compose.yml它工作完全findbuild设它在本地所以我试图标记它,并推入我的dockerhub学习和尝试更多。 这本来就是在教程之后的yml文件中 version: "2" services: web: build: . volumes: – ./:/app ports: – "3000:3000" 当我使用docker-compose build和docker-compose up docker-compose build时,这起作用就像一个魅力 所以我试图把它推到我的dockerhub,我也把它标记为node-test 然后我把这个yml文件改成了 version: "2" services: web: image: "et4891/node-test" volumes: – ./:/app ports: – "3000:3000" 然后我删除了我以前所有的图像,以确保这也可以…但是当我运行docker-compose build我看到这个消息error: web uses an image, skipping ,什么也没有发生。 我试图用Googlesearch错误,但没有什么我可以find。 有人能帮我一下吗? 提前致谢

按标题searchMongoDB不是id

我试图让我的路线从博客应用程序的URL拉标题。 我得到它的工作使用id但无法弄清楚标题。 我知道我不能做findById() ,而是使用find() 。 我如何定制我的查询来查找标题。 路线 app.get("/blogs/:title", function(req, res) { Blog.find(req.params.title, function(err, foundBlog){ if(err){ res.redirect("/blogs"); } else { res.render("show", {blog: foundBlog}); } }); }); 模式 var blogSchema = new mongoose.Schema({ title: String, image: String, body: String, created: {type: Date, default: Date.now}, author: { id: { type: mongoose.Schema.Types.ObjectId, ref: "User" }, email: String } });

Mongoose模式模式引用不工作

基本上我有3个mongoose模型(用户,产品,购物车)。我已经尝试用用户模型引用购物车模型。我用mongoose中的填充方法来填充模型中的引用属性。但它不工作,在安装后将产品添加到购物车之后获得一个空的购物车arrays。 { "_id": "5a0b2dcf726753258002273d", "password": "12345", "securityQuestion": "What is your Nick Name?", "securityAnswer": "rj1", "__v": 0, "cart": [], // empty cart here "mobileNumber": 1234567890, "email": "rahul@gmail.com", "lastName": "jhawar", "firstName": "rahul", "userName": "rj" } 我也想知道我的模型引用是否正确(我的意思是关系)。 我对这个概念很陌生,请帮助我。 //Cart.js var mongoose = require('mongoose'); var Schema = mongoose.Schema; var cartSchema = new Schema({ productName : {type:String,default:''}, productCategory : {type:String,default:''}, […]

TypeError:不能使用'in'运算符在一个中search'_id'

我正在尝试使用POST请求来检索提交的button的值,并在呈现新页面并传递值之前使用返回的值创build一个新的Mongoose模型条目。 当我尝试创build新的“types”,虽然我收到TypeError:“types错误:不能使用'在'运算符search'_id'在一个”。 有人可以帮我找出是什么驱动错误,以及如何解决它? 使用的forms: <form action="/round/type" method="POST" class="form-inline"> <div class="row"> <div class="col"> <button class="btn btn-lg btn-primary btn-block" name="roundType" value="one" type="submit">one</button> </div> <div class="col"> <button class="btn btn-lg btn-primary btn-block" name="roundType" value="two" type="submit">two</button> </div> <div class="col"> <button class="btn btn-lg btn-primary btn-block" name="roundType" value="three" type="submit">three</button> </div> <div class="col"> <button class="btn btn-lg btn-primary btn-block" name="roundType" value="four" type="submit">four</button> </div> </div> […]

使用mongoose更新深度嵌套的子文档

我试图阅读大部分类似的问题(而且有很多),但找不到任何我能理解的解决scheme。 如下所述的文件结构 – [ {RoomID:Room1, Boards:[ {BoardID:Board1, Devices:[ {DeviceID:Dev1} ….] } ….] } …..] 查询RoomID和BoardID后如何添加新设备?

如何在mongodb中保存dynamic表单域

我很难考虑如何在MongoDB中保存dynamic表单域。 我已经有了用静态字段保存基本forms的知识。 我想学习的是如何保存dynamic的表单字段(用户可以添加(n)字段/ s) <div class="row"> <div class="col-xs-12 col-sm-12 col-md-12"> <input type="hidden" name="count" value="1" /> <div id="fields"> <div class="controls" id="profs"> <form class="input-append"> <div id="field"> <!–<input autocomplete="off" class="input form-control" id="field1" name="prof1" type="text" placeholder="Type something" data-items="8"/>\–> <div class="row" id="field1"> <div class="col-xs-12 col-sm-12 col-md-4 form-group"> <select class="form-control"> <option>Select Product</option> <option>option 2</option> <option>option 3</option> <option>option 4</option> <option>option 5</option> </select> […]

mongoose自定义validationfunction与竞争条件

我们有一个日历API,用于在一天内预订一个插槽 SlotShcema startDateTime:Date // showing the day and the starting hour duration:number // showing the slot duration 我们可以计算出槽的结束 endDateTime = startDateTime + duration 我们要添加一个validation,所以没有两个槽相交,只有一个用户可以预订它。 我发现服装asynchronous自定义validation器 ,但我们无法find我们的场景任何文档。 问题是想方设法解决两个并发保存可能节省冲突预订“交易”的竞争条件。 在开始创build插槽之前,我做了自己的validationfunction,但是如果有竞争条件,它可能同时保存两个插槽,这是错误的。 有什么方法可以解决比赛条件? 问题在GitHub https://github.com/Automattic/mongoose/issues/5876

MongoDB / NodeJS:每个variables的最大连接数/数据库创build

我需要你的帮助,使用mongodb允许的最大连接数。 我得到这个错误: AssertionError [ERR_ASSERTION]:null =='MongoError:write EPIPE' 乍一看,我想到了这个SO解决scheme,并增加conf中的最大连接variables。 文件。 但是后来我想,这很愚蠢,我不需要这么多的连接,我应该能够限制这个数字,以免超载我的服务器,而且我实际上find了另一个SO解决scheme 。 所以我继续试图找出如何创build一个新的数据库每个variables的实例,因为这是我想要实现的,并在NodeJS驱动程序文档中find这个。 为MongoDB 。 我的代码基本上循环2个不同的数组。 首先: ccxt.exchanges (大约30项),然后pairs (4项),我创build一个新的连接每个数组的迭代…不知道如果我很清楚,但是这里的代码: var _ = require("lodash"); var ccxt = require("ccxt"); var MongoClient = require("mongodb").MongoClient, assert = require("assert"); let pairs = ["ETH/EUR", "BTC/EUR", "LTC/EUR", "BCH/EUR"]; let delay = 1200; // NOTE: Server initiation: setInterval(function() { ccxt.exchanges.forEach(r => { let exchange […]

mongoose虚拟填充和聚合

我正在尝试使用更新的虚拟填充function(使用Mongoose 4.13,Mongo 3.6)的Mongoose模式进行聚合。 可以说,我有以下(为了说明目的简化)模式: const ProjectSchema = new mongoose.Schema({ projectId: Number, description: String }); ProjectSchema.virtual('tasks', { ref: 'Task', localField: 'projectId', foreignField: 'projectId' justOne: false ]); const TaskSchema = new mongoose.Schema({ taskId: Number, projectId: Number hours: Number }); const Project = mongoose.model('Project', ProjectSchema); const Task = mongoose.model('Task', TaskSchema); 查询项目和填充相关的任务是正常使用.populate()如: Project.find({projectId: <id>}).populate('tasks'); 但是现在我想总结一下按项目完成任务的时间(把$ sum部分留在下面)。 无论如何,我只能得到空arrays。 是不是可以与虚拟填充聚合? const […]