草庐IT

mongoose-dbref

全部标签

node.js - Mongoose - 查找其数组属性包含给定子集的所有文档?

我有一个基于以下模式的(简化的)模型:schema=mongoose.Schema({foo:{type:String},bars:[{type:String}]});model=mongoose.model('model',schema);我想创建一个API来返回包含所有“条形”的所有文档,这些“条形”以逗号分隔的列表形式提供。所以我有:exports.findByBars=function(req,res){varbarsToFind=req.body.bars.split(',');//findthematchingdocument};Mongoose是否为此提供了一个API,或

node.js - mongoose/mongodb 查询没有相关记录的记录

我有两个Mongoose模型。我们称一个模型为foo,第二个模型为bar。bar记录有一个相关的foo记录和一个电子邮件地址。我希望我的api被传递一个电子邮件地址并返回一个foo记录列表,这些记录没有使用该电子邮件地址创建的bar记录。我将如何使用mongoose执行此操作?我知道我可以用SQL编写这个查询,但我一直在尝试学习一个没有sql的数据库,因此学习了mongo。这是一个例子。我有2个foo记录和2个bar记录:福斯:{name:"firstfoo"}{name:"secondfoo"}还有我的酒吧记录:{email:"requestEmail@example.com,foo

node.js - 用 Mongoose 更新 "expires"

我是mongodb和mongoose的新手,我很难弄清楚如何执行以下操作。我有一个架构,比如“用户”,其中包括这样一个字段:createdAt:{type:Date,required:true,default:Date.now,expires:'4h'}因此,当我创建一个新用户时,说varuser=newUser()(假设用户requires正确的模型),创建的新用户将被删除在(大约)4小时后(如果我理解正确的话)。我想知道是否有办法更新用户的expires属性。我想执行以下操作:从我的数据库中检索用户更新expires,使用户不再过期保存更改任何建议将不胜感激!

javascript - 在 Mongoose 中检索副本集状态

我正在构建一个从MongoDB集群读取数据的Node.js应用程序。该应用程序使用Mongoose与Mongo进行通信。我想构建一个功能,它能够告诉我Mongoose实时了解MongoDB副本集的哪些信息(比如调用rs.status()),但是这样到目前为止,我无法在互联网上找到任何类型的信息。这样做的目的是能够监控副本集中是否发生了某些更改,并在需要时进行报告。问题是,到目前为止,我在Internet上找不到任何关于此主题的内容。有没有人知道如何启动它?如果我可以为此目的使用当前的Mongoose连接,那就太好了。 最佳答案 您可

javascript - 如何在 Mongoose 中设置文档创建的 TTL 日期?

我正在尝试在Mongoose中创建一个promoCode模式。创建时,我需要能够设置促销代码的到期日期。促销代码不一定具有相同的TTL。我看了thisquestion,但我的文件还没有过期。这是我的promoCode.js文件:varmongoose=require("mongoose");varpromoCodeSchema=mongoose.Schema({expirationDate:Date,createdAt:{type:Date,expireAfterSeconds:Number,default:Date.now}})module.exports=mongoose.mode

node.js - Mongoose 返回 [Object] 而不是实际的嵌入文档

当我在集合中填充引用时,引用集合中的嵌入文档显示为[Object]而不是实际文档。更多详情我有一个歌曲架构varsongSchema=newSchema({songName:String});相册架构varalbumSchema=newSchema({title:String,favs:Number,songs:[songSchema]})和引用专辑的播放列表架构。varplaylistSchema=newSchema({title:String,items:{type:Schema.ObjectId,ref:'Album'}})现在当我运行以下查询时Playlist.find().p

node.js - 比较字段值的 Mongoose 查询

假设我有以下方案TestSchema{val1:Number,val2:Number}是否可以编写一个查询,其中返回的所有结果都在val1=val2中?如果是这样,有没有办法在填充时使用它?(也许在opts对象的匹配字段内?) 最佳答案 我想你想要的是$whereoperator.使用它,您至少可以返回那些字段匹配的元素。示例:db.myCollection.find("this.val2==this.val2");我现在不在可以对此进行测试的地方,因此您可能需要尝试一下,但这应该可以帮助您入门。我还应该提一下,使用$where操作

node.js - Mongoose 模型在填充后获得未定义的属性

我遇到了一个基本请求的问题。我获取的Mongoose模型的所有属性在exec()回调中均未定义。这是我的架构:userSchema:newSchema({email:{type:String,limit:50,index:true},password:String,birthdate:{type:Date},active:{type:Boolean,default:true},friends:[{_friend:{type:Schema.ObjectId,ref:'User'},addedDate:{type:Date,default:Date.now}}],registrationD

javascript - Node ,mongoose 'findOne' 在另一个集合的 'find' 内的一个集合上

基本上我有一个简单的场景,首先我需要获取整个集合,例如“汽车”,然后遍历该集合并根据第一个集合中的某些条件对另一个集合执行“findOne”,例如“用户”。所以://requiringmodulesandmongoose.connect()part...CarModel.find(function(err,cars){console.log("1");_.each(cars,function(car){console.log("2");UserModel.findOne({username:car.owner},function(err,user){console.log("3");u

javascript - 从字符串中获取 Mongoose ObjectId

我正在尝试将String转换为ObjectId:var_id=mongoose.Types.ObjectId(req.body.notebook);笔记本的值其实是数据库中一个文档的id:>db.notebook.findOne(){"title":"MyNotebook","isActive":false,"_id":ObjectId("54505ced1fa5b1b519bdfc88"),"notes":[],"__v":0}我正在调试,方法如下所示:mongoose.types.ObjectId("54505ced1fa5b1b519bdfc");我在调试时遇到了这样的错误:Ob