草庐IT

Mongoose-auth

全部标签

node.js - Mongoose 查找具有组合字段和一个搜索参数的文档

我将Nodejs和Mongodb与Mongoose结合使用。我的模型包含以下属性:first_namelast_namestatus我需要使用mongoose查找功能来搜索具有这3个字段的用户。我有2个参数:full_name:CraigdeZiastatus:alive例如,我有一个名字叫CraigdeZia。我不知道名字的哪些部分是名字或姓氏,所以我想搜索全名。我想用“$and”逻辑连接全名和状态。条件结构如下:'$and':[{'full_name':'CraigdeZia'},{status:'alive'},]问题是数据库中没有full_name字段。我们需要结合first_

javascript - 如何修复 Mongoose 模型的 deleteOne() 函数,当它不被 req.params.id 删除时?

首先要提到的是,我对Node.Js和MongoDB完全陌生。我正在使用Node.Js和MongoDB编写后端API,它将处理来自前端的GET、POST、DELETE请求,这些非常简单。我在使用DELETE功能时卡住了。这是我的posts.service.ts文件,其中包含此deletePost()函数,该函数将postId发送到后端app.js文件。`deletePost(postId:string){this.http.delete('http://localhost:3000/api/posts/'+postId).subscribe(()=>{console.log(postId

javascript - 使用 Mongoose 更新包含唯一值的对象数组

我在一个包含对象数组的集合中有文档。数组中的每个对象都包含一个唯一字段“clinic_id”。我也在使用mongoose-unique-validator。我有一个Node路由,它接受JSON请求以将新对象推送到数组中。但是,只要数组中存在现有对象,这就会失败。我在已经存在的对象上收到唯一约束错误。例如,如果我在数组中有一个clinic_id为1的对象,并且我尝试为clinic_id2添加一个对象,我将收到一条错误消息,提示clinic_id1已经存在。就好像我正在尝试创建一个重复条目,而不是仅仅向数组添加一个新的非重复对象。Mongoose模式的一个例子:name:{type:Str

mongodb - 为什么 Mongoose 会删除我数据库中最顶部的项目,而不是与目标项目匹配的 ID?

抱歉老是提问题,但是这个我不太明白。我有一个按钮可以激活下面的/post命令以通过Mongoose删除项目。但是,我发现它忽略了附加的:id。console.log显示正确的id以删除目标条目,id变量也显示正确的目标id,但被删除的条目似乎是我列表中最上面的条目,而不是目标ID。下面是否有我没有看到的明显原因可能会导致此问题?server.js/post下面:app.post('/remove/team/:id',(req,res)=>{console.log("Deletecommandreceived."+req.params.id)varid=req.params.id;if(

javascript - Mongoose 只更新选定的字段或插入

标题可能听起来像findOnewith$set但不知何故我没有让它按照我想要的方式工作。首先,我有一个Ticket模式constTicket=newSchema(Object.assign({ticketNumber:{type:String,required:true},year:{type:Schema.Types.Mixed,default:[]},//object},BaseSchema),{timestamps:true});然后我有一个函数可以将数据写入数据库。我在下面的代码中也有一个模拟数据exports.writeToDB=async()=>{constdata=[{t

javascript - 在 mongoose 中按 _id 值范围选择文档

我正在创建一个允许用户从主表创建子表的应用程序,他/她可以在其中指定要包含在子表中的行范围。这是我的子表模型://Importsconstmongoose=require('mongoose');consttimestamps=require('mongoose-timestamp');//SetupconstSchema=mongoose.Schema;constViewSchema=newSchema({name:{type:String,required:true},table:{type:mongoose.Types.ObjectId,required:true,ref:'Ta

mongodb - Mongoose 找到然后返回带有条件的子文档

我有以下数据{"_id":ObjectId("5cdcb640e6d43d2c91e432aa"),"userID":"quqrgfbf43adadonadb","taggedProducts":[{"isChecked":true,"_id":ObjectId("5cdcb640e6d43d2c91e432ab"),"catalogSKU":"MYLOAD10","createdBy":"string","modifiedBy":"string","remarks":"string","createdAt":ISODate("2019-05-16T01:00:48.852Z"),"u

mongodb - 子文档中的 Mongoose 聚合管道连接字段

我有以下3个集合:1.runs:{"_id":ObjectId("5cda6191e1b7c889e0442dff"),"status":1,"runName":"MyRunTest01"}2.runsets:{"_id":ObjectId("5cda6191e1b7c889e0442e01"),"_run":ObjectId("5cda6191e1b7c889e0442dff"),"config":"Config1","suites":[{"_id":"ObjectId(5cda6191e1b7c889e0442e03"),"suiteid":ObjectId("5c748822e0

node.js - 如果缺少非必填字段,Mongoose 自定义验证器将失败

我正在使用mongoose模式,并为一些非必填字段编写了一个自定义验证器。当该字段存在时验证器工作完美,但如果该字段丢失(这没关系,因为该字段未标记为“必填”)则失败。我的问题是:这是正确的行为吗?如果缺少该字段,如何让它跳过验证? 最佳答案 您可以使用自定义验证器,因为它仅在值存在时被调用。另见:Mongoosevalidation:required:false,validate:regex,issueswithemptyvalues 关于node.js-如果缺少非必填字段,Mongo

javascript - For Each 循环中的多个 Mongoose 调用

我正在读取一个JSON对象并循环遍历每个项目。我首先检查该项目是否已存在于数据库中,如果存在,我想记录一条消息。如果它不存在,我想添加它。这工作正常但是,我想添加一个回调或使用process.exit()完成该过程;因为mongoose调用是异步的,所以我不能将它放在for循环的末尾,因为它们还没有完成。处理此问题的最佳方式是什么?functionstoreBeer(data){data.forEach((beer)=>{letbeerModel=newBeer({beer_id:beer.id,name:beer.name,image_url:beer.image_url});Bee