Tag: mongoose

Mongoosevalidation架构没有模型

我想在对应于较大模式的模型上发布该对象之前,针对作为较大模式的成员的模式来validation对象的一些内部元素。 有人已经问过这个问题, 这个答案在第二个选项上有类似的地方: var p = new People({ name: 'you', age: 3 }); p.validate(function(err) { if (err) console.log(err); else console.log('pass validate'); }); 问题是,在进行validation之前,必须使用var People = mongoose.model('People', peopleSchema);创build一个新模型var People = mongoose.model('People', peopleSchema); 。 这是否意味着在这种情况下,新的集合'People'将被存储在MongoDB数据库中? 是叫mongoose.model('People', peopleSchema); 以任何方式改变数据库? 如果是这样,有没有办法做到这一点,而不是创build一个新的集合,在这种情况下, 'People' ? 我想要validation的模式将作为另一个文档的一个组件存储在数据库中,我不想用未使用的集合来污染数据库。

如何删除mongoose模式中的根数组?

在我的mongodb数据库中,当我做一个获取请求来接收所有的项目,它与这个响应,但有一个数组,我不想在那里。 这是回应: [{"_id":"598f43ab610a4b3540481615","__v":0,"data":[{"name":"Test","ip":"1","port":7777,"_id":"598f43ab610a4b3540481616","online":true}]}] 第一个数组在[]覆盖响应没有名称,我不知道如何删除它。

嵌套的对象数组

这是我的mongodb模式。 var Schema = mongoose.Schema; var UserSchema = new Schema({ created: { type: Date, Default: Date.now() }, name: { type: String, default: "", // required: "Title Cannot Be Blank", trim: true }, email: { type: String, default: "", // required: "Content is required", trim: true }, rooms: [ { roomId: "string", roomName: "String", pic: "string", […]

Node.js / Mongoose:发送信息到一个函数,并识别信息来操作

我有一个应用程序,它向3个不同的API REST服务器发出请求,收集并处理收到的对象信息,并使用mongoose的模型发送信息不同的Mongo集合(每个API REST一个)。 我的目标是在发送到MongoDB之前或同时(或之后)对不同的信息集进行操作。 下面是一个包含两个具体对象的例子,它们被检索并发送到数据库: Object1: { "name": "X", "a": 10, "b": 9, "n": 1502642712481, "iname": "ix", "_id": "59907f34040eb562d8d11d8c" } 对象2: { "name": "Y", "n": 1502642712552, "iname": "ix", "_id": "59907f34040eb562d8d11d8d", "b": "10", "a": "9", } 这些都有自己的模型,并正确插入到MongoDB保存,我想比较每个对象的“a”和“b”键(FYI: "iname"是一个共同的关键对象和"n"是在请求被返回时创build的时间戳)。 我想对'a'和'b'做的操作types是相对基础的math(目前): ax – ay和bx -by 任何想法,我怎么能做到这一点? 现在将每个对象保存到数据库的代码嵌套在一个无限循环中,如下所示: async function loopY() { setTimeout( async function () { var list […]

通过使用body parser,node js的POST方法将一个variables从HTML表单传递到mongodb查询中

我从html表单发送数据,以在mongodb查找查询中使用它,但是当在查询中使用它时,它将searchvariables名称而不是其中的值存储。 app.post('/love',function(req, res){ var article = new Article(); article.headers.Subject = req.body.title; var x = "article.headers.Subject"; console.log(x); var query = Article.find({'header.Subject': {$regex: 'x'}}).limit(2); query.exec(function(err, articles){ if(err){ console.log(err); }else{ res.render('index.html',{ title: 'author', articles:articles }); } }); return; }) 尝试所有的查询选项,如: .find('headers.Subject' : /x/i) .find('headers.Subject': 'x') 我已经打印x和它的价值,但是当它发现查询它只是寻找字母“x”。 模型结构: var ArticleSchema = mongoose.Schema({ body: 'String', subFolder: 'String', headers:{ Subject: 'String', […]

MongoDB-Express :: ENOTDIR:不是目录,… gssapi.js / package.json

我在express-js项目中使用了mongodb 。 我想在vs code运行服务器,但它与npm包抛出错误。 它适用于Webstorm和command-line 。 Error: ENOTDIR: not a directory, stat '/home/user/Workspace/Project1/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/auth/gssapi.js/package.json' at Error (native) at fs.existsSync (fs.js:219:13) at find_package_json ('/home/user/Workspace/Project1/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/node_modules/require_optional/index.js:13:9) at require_optional ('/home/user/Workspace/Project1/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/node_modules/require_optional/index.js:37:18) at Object.<anonymous> ('/home/user/Workspace/Project1/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/auth/gssapi.js:27:14) at Module._compile (module.js:410:26) at Object.Module._extensions..js (module.js:417:10) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) at Module.require (module.js:354:17) 我已经尝试多次安装软件包,并更新npm本身,但无法修复它。 有人可以请build议如何解决这个问题? 谢谢。 这是我的package.json文件。 { "name": "Project 1", "version": "1.0.0", "description": "Project […]

我如何用我目前的设置来实现井字游戏的胜利条件?

我目前正在做一个在Node.js中构build的tic tac脚趾多人游戏。 我的主要问题是搞清楚如何检查胜利条件。 我知道如何使用数组,但我想这样编程我的游戏…. var mongoose = require('mongoose'); var gameSchema = new mongoose.Schema({ player1: { type: mongoose.Schema.Types.ObjectId, ref: "User" }, player2: { type: mongoose.Schema.Types.ObjectId, ref: "User" }, // This would be an array of selected spaces for 'x' or 'o' placements: [{ type: mongoose.Schema.Types.ObjectId, ref: "Placement" }], // This would be the username of the […]

如何使用Node,Mongoose,Bootstrap进行分页并将其传递给html?

我正在用NodeJS创build一个博客,我正在使用“Mongoose Paginate”将数据库分为页面,Bootstrap 4,EJS作为视图引擎和JQuery分页插件 。 我不知道如何真正将分页传递给HTML,我挣扎了一个星期,但我找不到解决scheme; 我希望html中的graphics数字1,2,3,4,5可以dynamic链接到相应的页面,编号1到www.site/page/1等等,同时显示例如只有5个可点击的数字在这个时候,但是数字应该随着用户点击更高的数字而graphics地增加。 先谢谢你。 APP.JS app.get('/page/:page', (req, res) => { var pagina = req.params.page; Blog.paginate({}, {page: pagina, limit: 5}).then((docs) => { //console.log(docs) res.render('page.ejs', docs) }, (e) => { res.status(404) }); }); 的script.js $(document).ready(function () { $('#pagination-demo').twbsPagination({ totalPages: 10, visiblePages: 5, href: true, onPageClick: function (event, page) { $('#page-content').text('Page ' + page); } […]

如何检索Mongoose中的子文档

我的数据库中有mongo集合: [ { "_id": "59955bb0cd522a00bcaab08c", "lang": "en", "__v": 0, "message_subsets": [ { "identifier": "errors", "_id": "59955bb0cd522a00bcaab08d", "messages": [ { "identifier": "invalid", "message_text": "$FIELD$ is invalid", "_id": "59955bb0cd522a00bcaab091" }, { "identifier": "empty", "message_text": "$FIELD$ is required", "_id": "59955bb0cd522a00bcaab090" } ] } ] }, { "_id": "59955bb0cd522a00bcaab08c", "lang": "ru", … ] 这是由这种mongoose模式构build的: const MessageSchema = new mongoose.Schema({ […]

Mongoose从嵌套数组中移除整个对象

我正在使用mongoose4.11.3。 我试图从嵌套数组中删除一个对象。 这是我的模式 var VendorSchema = new Schema({ _id: { type: Schema.Types.ObjectId, ref: "User" }, services: [{ _id:false, service_category: { type: Schema.Types.ObjectId, ref: "ServiceCategory" }, sub_services :[{ _id:false, service : { type: Schema.Types.ObjectId, ref: "Service" }, service_description:{ type: String, default: null } }] }] }); 我需要删除sub_services数组中的对象。 所以这就是我所做的 Vendor.update({'services.service_category': req.body.category_id}, {$pull :{'services.$.sub_services': { "service": req.body.service_id }}},function(err,obj){ […]