草庐IT

mongoose-dbref

全部标签

node.js - 如何从外部模型引用 Mongoose 数据库?

我正在使用Nodepad关于DailyJS的教程.我已经fork它并正在扩展它以用于我自己的目的。我遇到的一个问题是整个应用程序都写在app.js文件中,我更喜欢将我的应用程序分开一点。我应该如何将mongo写入我单独的模型文件,因为与mongoose相关的所有内容都在app.js中。我需要将什么带到我的外部文件中,以便它们可以正确连接到数据库并理解我的mongoose模式? 最佳答案 最简洁的方法是像您所做的那样在应用程序初始化时使用Mongoose注册模型,然后当您想要使用它们时,只需从Mongoose中检索它们,而不是再次要求

node.js - 如何使 Mongoose 连接优雅地失败

当我的Node应用程序启动时,它会像这样尝试连接到数据库:vardb=mongoose.connect('mongodb://what:ever.com:1234/database',function(err){if(err)console.log('MongoDB:connectionerror->'+err);elseconsole.log('MongoDB:successfullyconnected');});当它失败时,我得到了一个完全符合我预期的错误,但我的Node应用程序终止了。如何在连接返回错误时让Node应用继续运行?有人可以指出长期运行应用程序的Mongoose最佳实

node.js - 查询 Mongoose 文档中的数组

我有1-用户和设备之间的许多关系(嵌入在用户模式中)varUserSchema=newSchema({devices:[DeviceSchema]//listofdevicesfortheuser})varDeviceSchema=newSchema({deviceRegistrationId:String,deviceOSType:String});我在expressPOST/api/device中有一个Rest调用(用户ID在header中提供)以将设备添加到用户集合中,我想仅在用户模型中不存在该设备时才添加该设备。postcall的正文类似于{deviceRegistration

javascript - mongoose findOne() 调用不保存且输出无错误

我正在执行一个简单的findOne()并将文档保存在其中,但由于某种原因它无法正常工作。我已经输出了对象并且控制台中的输出是正确的,但是在save()之后,我查看了我的mongodb并且它没有保存。我不确定是否应该设置某种选项。这是我的代码:var1="data1";var2="data1field1";Model.findOne({'_id':some_id}).exec(function(err,doc){if(err)returnconsole.error(err);(doc.data[var1][var2][0]+=1;console.log(doc.data.data1);d

node.js - 如何通过 Mongoose 加载带有自定义 _id 的文档?

这是我的架构定义:varDocSchema=newmongoose.Schema({_id:{name:String,path:String},label:String,...});mongoose.model('Doc',DocSchema,'doc_parse_utf8');varDoc=mongoose.model('Doc');并且文件已经被其他程序插入到mongodb中。然后我尝试查询文档:Doc.findOne({_id:{name:name,path:path}},function(err,doc){if(err&&err_handler){err_handler(err

node.js - 时间住mongodb,mongoose不行。文档不会被删除

我在我的node.js应用程序中使用这个方案进行sessionvarmongoose=require('mongoose');varSchema=mongoose.Schema;//definetheschemaforourusersessionmodelvarUserSessionSchema=newSchema({sessionActivity:{type:Date,expires:'15s'},//Expireafter15suser_token:{type:String,required:true}});module.exports=mongoose.model('UserSe

node.js - 使用模式方法在 Mongoose For 循环中保存项目

如果我附加任何额外的验证方法,我在保存通过for循环运行的项目时会遇到问题。基本上,我正在构建一个允许编辑者删除不合时宜的照片的instagramAPI应用程序。照片以20张为一组从Instagram中提取并显示给编辑。如果编辑点击一张照片,它首先会按ID放入“黑名单”数据库,然后从主照片数据库中删除。为了不让列入黑名单的照片再次出现在Feed上,在将项目保存到主照片数据库之前,需要根据黑名单检查照片的InstagramID。为此,我使用了架构方法。现在的问题是,我只将一张照片保存到数据库中。如果我去掉方法检查,那么我得到所有20个。这是我的主要创建Controller:exports

node.js - Mongoose - 将方法添加到回调中返回的对象

有没有办法向回调返回的对象添加函数?User.find({'age':'20'},function(err,users){users.function();});statics似乎只适用于模型。示意性地:User.static();和方法仅适用于实例(newUser()).method();它们似乎都不适用于用户,我认为这只是一个普通的js对象变量。我错过了什么吗? 最佳答案 Schema.method描述,来自文档:AddsaninstancemethodtodocumentsconstructedfromModelscompil

node.js - mongoose "_id"字段无法删除

我想返回“id”字段而不是“_id”,使用中的解决方案MongoDB:output'id'insteadof'_id'以下是我的代码:ScenicSpotSchema.virtual('id').get(function(){varid=this._id.toString();deletethis._id;deletethis.__v;returnid;});但响应仍然有字段“id”和“_id”,看来delete没有生效。为什么? 最佳答案 我估计你需要的是toJSON。这应该做你想做的:schema.options.toJSON=

node.js - 如何在一个 get 请求中返回多个 Mongoose 集合?

我正在尝试生成一个响应,该响应返回按3个不同列排序的相同集合。这是我目前拥有的代码:varfindRoute=router.route("/find")findRoute.get(function(req,res){Box.find(function(err,boxes){res.json(boxes)}).sort("-itemCount");});如您所见,我们正在发出单个get请求,查询Boxes,然后在最后按itemCount对它们进行排序。这对我不起作用,因为请求仅返回按itemCount排序的单个JSON集合。如果我想在同一个请求中返回另外两个按name和size属性排序的