草庐IT

mongoose-dbref

全部标签

javascript - 来自填充文档的 Mongoose 求和字段

我有两个模型:User和Track。用户可以完成每个Track并获得积分。用户模式:letuserSchema=newmongoose.Schema({name:{type:String,required:true},completedTracks:[{type:mongoose.Schema.ObjectId,ref:'Track',}],});跟踪模式:lettrackSchema=newmongoose.Schema({points:{type:Number,default:0,}});我在User模型中存储对已完成轨道的引用。我想做的是查询多个用户,只显示他们每个人完成的轨道的

javascript - 如何在 Mongoose 模式中创建多个唯一数据点?

我正在使用express和mongoose/mongodb,并且有一个包含2个数据点的用户文档,我希望它们是唯一的(电子邮件和用户名)。我的问题是我的注册过程是多个步骤,因此首先保存电子邮件,然后在下一步中保存用户名。我有一个错误,如果用户在第1步和第2步之间,则其他用户无法注册,因为我收到错误消息,指出他们尝试保存的用户名或电子邮件不是唯一的。如果第1步和第2步之间的用户完成,那么其他用户可以创建电子邮件并且它可以完美运行。我目前正在做的是复合索引并以某种方式关联这两个字段。我需要一个解决方案,如果mongodb尝试保存该字段但该字段中已经存在另一个用户的相同数据,则返回错误。我已经

javascript - Mongoose - Model.deleteOne() 正在删除整个集合而不是单个文档

我有一个包含客户数组的用户模型。我想根据customer_id删除特定客户。根据我在Mongoose文档中阅读的内容,我应该使用Model.deleteOne删除单个文档。这是我的尝试用户架构(为简洁起见已缩短):constmongoose=require('mongoose');constUserSchema=newmongoose.Schema({username:{type:String,default:''},password:{type:String,default:'',},registerDate:{type:Date,default:Date.now()},custom

javascript - Mongoose 返回一个空数组

当我尝试使用find()函数时,Mongoose返回一个空数组。有人可以帮我解决这个问题吗?users.jsconstmongoose=require('mongoose');constSchema=mongoose.Schema;mongoose.Promise=global.Promise;constuserSchema=newSchema({name:String});constuser=mongoose.model('user',userSchema,'users');module.exports=user;test_helper.jsconstmongoose=require

javascript - mongoose mongodb - 删除所有条件为真的地方,除了一个

如果一个集合有一个狗的列表,并且在某些种族中有重复的条目。我如何从一个查询中删除除单个特定/非特定查询之外的所有内容?我猜想可以从Model.find()中获取所有索引,遍历除第一个索引之外的每个索引并调用Model.remove(),但我宁愿让数据库通过查询处理逻辑。这怎么可能?我想要的伪代码示例:Model.remove({race:"pitbull"}).where(notFirstOne); 最佳答案 要删除除一个以外的所有文档,您需要一种方法来获取所有过滤后的文档,按标识符对它们进行分组,为该组创建一个ID列表并从中删除一

node.js - Mongoose 条件字段值

我正在使用NodeJS和MongoDB开发一个项目,我正在使用Mongoose。在我的数据库中,我存储了公司的营业时间和营业时间。我还有一个isOpen字段,它是一个bool值,我想知道是否可以根据当前日期和开放时间动态更改mongoDB中isOpen的值公司的。{openingHours{opens:Number,closes:Number},isOpen:Boolean//shoulddependonthecurrentdateandopeninghours}PS:我看到可以在字段required上放置一个函数。 最佳答案 您可

javascript - 如何优化列表所有 Mongoose 查询?

在过去的几天里,我一直忙于尝试改进和优化网站的mongoose查询。我发现的主要事情是使用我已经完成的索引。但是有一个问题...在我的mongo模式中,我几乎没有“列出所有”查询,我的意思是:一个将从该模型返回所有​​内容且没有任何参数的查询。我目前正在使用ExpressJS和MongoDBv4.0.6开发NodeJSv8.15.1我正在谈论的查询类型,下面的示例是我的实际查询之一:ModelSchema.statics.listAll=function(callback){try{returnthis.find({},callback).select({"x":0,"y":0});}

node.js - Mongoose (Mongodb)按填充字段排序

我有一个Product模型,每个产品都有一个category字段。这个类别字段由mongoose使用Category集合中匹配文档的字段填充。我这样做是希望通过category.popularity对我的产品查询进行排序,这只是一个简单的数字。这里的目标是当您按流行排序时,查询排名最高的第一位。我整晚都在搜索并实现了不同的使用排序方式,但我要么误解了它的工作原理,要么只是没有正确使用。这是我获取产品的电话constdocs=awaitmodels.products.find(find,null,opts).populate('retailer').populate({path:'cat

mongodb - 是否可以使用 $inc 通过 Mongoose 更新子文档?

我有一个看起来像这样的文档:{"personName":"Somename","metaDetails":{"visits":1,"otherMeta":32}}为Node.js使用Mongoose。我想更新(或插入)访问次数。这是我到目前为止所拥有的。我读过$positionaloperator但我可能离题太远了:updObj={}newKeyString="metaDetails.$.visits"updObj[newKeyString]=1Person.update{personName:"Somename},{$inc:updObj},{upsert:true},(err,up

node.js - Mongoose .js : How can I update a deep embedded document by its id?

如何使用_id更新超过一层深度的嵌入式文档我想更新的项目?例如,如果我的模型文件中有以下内容:varSubitems=newSchema({"title":String,"body":String)}varItems=newSchema({"title":String,"subitems":[Subitems])};varProjects=newSchema({"title":String,"description":String,"items":[Items]});varexports=module.exports=mongoose.model('Project',Projects)