草庐IT

mongoose-dbref

全部标签

javascript - Mongoose :查询数据数组并返回相同数量的结果

我有一个csv,它有类别列,有一些重复的类别名称,所以我制作了一个包含所有类别名称的数组,如:varabc=['A','A','B','A']//arraywithduplicatedata在这个例子中,A正在重复,所以当我用它查询文档时:CollectionA.find({categoryName:abc},function(err,data){if(err){console.log(err);}console.log(data);});但它只为A和B返回2个文档,但我想要与数组长度相同的行数我希望输出应该返回相同数量的行文档。 最佳答案

mongodb - 具有包含值的默认数组的 Mongoose 数组字段

Mongoosedocs建议为这样的数组字段覆盖[]的默认值:newSchema({toys:{type:[ToySchema],default:undefined}});我想要一个字符串数组,带有一个枚举和一个默认值(如果没有提供的话)。因此,如果未指定任何文档,则每个文档的类型都是“foo”,但文档可能是“foo”和“bar”。这可能吗? 最佳答案 虽然文档没有提及,但可以按照您期望的方式给出默认值。你可以有一个带有默认值的枚举数组,如下所示:newSchema({toys:{type:[{type:String,enum:['

mongodb - Mongoose aggregate Lookup - 如何按特定 id 过滤

我正在尝试制作一个聚合管道-$lookup以从另一个接收仅收集不等于特定_id的项目例如:诊所集合:{_id:1,name:'somename1'}{_id:2,name:'somename2'}{_id:3,name:'somename3'}业务集合:{_id:1,name:"somebusinessname",clinics:[1,2,3]}我的聚合管道查询:db.business.aggregate([{$match:{_id:mongoose.Types.ObjectId(businessId)}},{$lookup:{from:"ClinicsCollection",loca

mongodb - Mongoose 查询文档匹配数组,无论其元素顺序如何

使用MongoDB/Mongoose,考虑我的test集合包含以下2个文档:"_id":ObjectId("5c4e3cef9cd12904cfc7ecc0"),"name":"REGISTER1","properties":[{"property”:"PROP1","value":"GREEN"},{"property”:"PROP2","value":"RED"}]和"_id":ObjectId("5c4e3cef9cd12904cfc7ecc0"),"name":"REGISTER2","properties":[{"property":"PROP2","value":"RED"

node.js - Mongoose 聚合,在产品匹配时找到产品的祖先

抱歉标题不好,想不出更好的标题。我有一个父Product,它有一个空的ancestors数组。我也有ancestors的Products包含父级_id,称为variants和Productsancestors包括父级和名为options的变体_id。所有产品都在同一文档中,没有引用。父产品{productType:'simple'ancestors:[],title:"TestTitle",_id:"1"}变体产品{productType:'variant'ancestors:["1"],title:"TestVariant",_id:"2"}可选产品{productType:'opt

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