草庐IT

mongoose-dbref

全部标签

node.js - 为 MEAN 应用程序生成 Mongoose DTO

我是mongoose和Node的新手,我正在使用MEAN堆栈(MongoExpressJSAngularJSNode)构建应用程序。我过去使用asp.netWebAPI构建了很多API,但我找不到任何关于使用DTO或View模型的文档,以减少在我之间来回传输的JSON量服务器和我的前端。我的应用程序是关于用户在线填写的调查。每个答案然后被用户用来产生一个分数。我的模型:varUserSchema=newSchema({email:{type:String,trim:true,default:'',match:[/.+\@.+\..+/,'']},status:{type:String}

node.js - Mongoose:设置双向引用

我正在开发一个Express+Mongoose网络应用程序,它有许多相互依赖的模型。除非我可能没有正确设计我的数据,否则我希望找出在两个相互关联的对象之间设置引用的最佳方法。我知道在我的Schemaobj中,如果我想要一个Schema引用另一个Schema,我添加referenceId:{type:Schema.Types.ObjectId,ref:'ModelName'},作为属性(property)。到目前为止,在创建模型时,我一直将此属性设置为我要引用的id。例如:obj.referenceId=someReferenceId;obj.save(...)。但是,如果我有两个独立的

node.js - 如何从结果中删除 mongo 特定字段(NodeJS、Mongoose)

我想从查询结果中删除所有Mongo特定字段(如“_id”)。有没有一种简单的方法可以做到这一点,还是我应该手动删除字段?如果是,那么这些字段是哪些以及如何做到这一点?我正在使用NodeJS和Mongoose 最佳答案 您可以使用select()方法从查询中删除字段:Model.find({}).select("-removed_field").then(resp=>{//yourcode});您应该在字段名称前指定“-”,以删除该字段。如果您想删除多个字段-您可以将它们指定为数组:Model.find({}).select(["-r

node.js - Mongoose 默认值是否应用于现有文档?

如果我向Mongoose模式添加一个属性并为其指定默认值,现有文档在加载时是否会收到这些默认值? 最佳答案 是的,但如果查询精益则不是。对于返回完整Mongoose文档对象的查询-Thing.find({...})-只要属性缺失,无论模式何时更改,都将返回默认值.如果文档随后被保存,默认值将具体化在数据库中。如果查询是lean–Thing.find({...}).lean()–查询只返回数据库中的内容,而这不会不包括任何新添加的默认值(除非文档已加载并保存,如上所述)。 关于node.j

javascript - 合并 Mongoose 中的两个对象

我在mongoose的user.js和userProfile.js中有两个模型,我想在其中使用连接查询获取文档,但我没有采用ref在用户架构中,所以我有如下代码:user.jsvaruserSchema=newSchema({nick_name:{type:String},email:{type:String},password:{type:String},is_active:{type:String,enum:['1','0'],default:"1"},},{collection:'user'});userProfile.jsvaruserProfileSchema=newSche

node.js - 如何使用 mongoose 一次返回 25 个结果

这个问题在这里已经有了答案:HowtopaginatewithMongooseinNode.js?(35个答案)关闭6年前。我正在创建一个RESTfulAPI,它将返回MongoDB集合中的文档。作为RESTful,我想将返回的文档数量限制为25个,然后让客户端请求下一个25个,然后是下一个,依此类推,直到所有文档都被读取。使用find()我可以获取集合中的“所有”文档,使用find().limit()我可以将其限制为25,但它总是会获取前25个。是否有任何好的代码示例显示如何记住您在find()中停止的位置,以便第二次调用find将返回集合中接下来的25个文档?到目前为止我的代码..

node.js - 如何使用 Mongoose 获取 MongoDB 集合的大小(字节)?

假设我有一个像这样的Mongoose模型:mongoose=require('mongoose')Products=mongoose.model('Products')如何获取完整对应集合的大小(以字节为单位)?我找到了db.collection.storageSize,但在MongooseAPI文档中找不到它。 最佳答案 Mongoose不为此提供抽象,但您可以访问native驱动程序集合方法,如stats()来自collectionMongoose模型的属性。该方法将集合的大小作为结果的storageSize属性提供:Produ

node.js - 如何在 Mongoose 模式中共享枚举值?

我有具有以下枚举值的Mongoose模式:类型:{类型:数字,枚举:[0,1,2,3,5,10,11]}在我的一些路由器中,我需要使用如下值之一:Model.create({kind:10}).exec(callback);我遇到的问题是使用数字10而不是符号名称。那么共享命名常量并在shema和路由中使用bith的最佳方式是什么? 最佳答案 我喜欢把它们附在模型上:constENUM={ONE:1,TWO:2,TEN:10};constkindSchema=newSchema({kind:{type:Number,enum:_.v

node.js - 关闭 Mongoose 连接 Lambda

我在AmazonWebServices中使用Lambda函数时发现了一个奇怪的行为。我使用的是Node4.3和Mongoose4.4.17这个想法是测试和使用Lambda的功能。我制作了一个简单的模型并将其存储在Ec2实例中。在我尝试关闭连接之前,代码工作正常。我知道,更好的做法是“不要关闭你的连接,让池处理”。好吧,这适用于普通应用程序,但Lambda是一个无状态函数,所以如果我不关闭连接,它会保持打开状态,消耗资源。当您每秒有数千个请求时,这可能会非常糟糕。所以,这是我的代码。'usestrict';letmongoose=require('mongoose');//Iaddthi

javascript - 使用 Mongoose 插入文档

这是我的Mongoose模式:varDealSchema=newSchema({deal:{dealid:{type:String,require:true,unique:true,},title:String,},//Embeddedsub-documentdetails:{detail:String,price:Number//USE:deal.details.price}})我的插入语句如下:db.deals.insert({deal.dealid:'1',deal.title:'deal',details.detail:'FreeFood',details.price:200}