草庐IT

mongoose-dbref

全部标签

java - 使用@DBRef 查询带有循环引用的文档时的 Stackoverflow

我的应用程序使用MongoDb和Spring-Data。我的User.java如下。User{//otherfields@DBRefListrequests;}Request.java如下。classRequest{@IdprivateObjectIdid;@DBRefprivateUserwho;@DBRefprivateUserwhom;@DBRefprivateUsergroup;}我可以正确保存两者。假设我的对象user1包含请求列表,对象request1包含user1作为who的值。当我检索user1对象时,出现StackOverflowError。详情here.相关issu

node.js - Mongoose:使用 npm/node_modules 模块提供的模型或模式

假设我有一个应用程序,它定义了一些模型并创建了全局Mongoose连接(mongoose.connect(...))。该应用程序还依赖于node_modules目录中的模块定义的一些模型。我遇到的问题是应用程序和单独的模块不共享同一个全局连接对象。好的,好的。与其让模块导出模型,不如导出模式,主应用程序可以将其注册到连接中。在应用程序中会有这样的东西:varSomeSchema=require('somemodule').SomeSchema;mongoose.model('SomeModel',SomeSchema);不幸的是,这也不起作用。注册模型时,Mongoose会检查给定的模

mongodb - 是否可以使用 Mongoose 查询构建器只返回聚合管道数组而不运行查询?

我在本地工作-这永远不会在实时网站上完成。我构建了一个节点/快速服务器,它将接受Mongo的字符串化聚合管道,并将结果返回给浏览器:app.get('/aggregate/:collection',function(req,res){varqueryObject=JSON.parse(req.param('q'));varrecProvider=getProviderForTable(req.params.collection);recProvider.getCollection(function(err,collection){collection.aggregate(queryOb

node.js - 如何覆盖 Mongoose 插件的功能?

我在mongoose中有一个插件,对于每个模式,我正在执行以下操作varuser=newSchema({});user.plugin(myplugin);user.statics.createCustomDoc=function(){.....}问题是createCustomDoc方法也在myplugin中定义。现在我想用定义为user.statics.createCustomDoc的方法覆盖myplugin的createCustomDoc。目前调用的方法来自插件,而不是我在user.statics.createCustomDoc中编写的方法。我该怎么做?当然,我不想更改函数名称,也不

arrays - 在 Mongoose 的子文档中推送到数组

我想推送到Mongoose/MongoDB子文档中的数组。这是架构:varUsersSchema=newmongoose.Schema({user:String,stream:String,author:String,tags:Array,thumb:Number,added:Number})varContentSchema=newmongoose.Schema({title:String,url:String,description:String,text:String,users:[UsersSchema]})我想将一个数组放入特定users子文档的UserSchema.tags数

node.js - Mongoose.js 在模式中存储未知对象

我正在创建一种对话应用程序,我希望用户能够通过电子邮件和短信从任何地方继续他们的对话。现在我有一个这样的对话模式:varmongoose=require('mongoose');varSchema=mongoose.Schema;varvalidator=require('validator');varConversationSchema=newSchema({contact:[{type:Schema.Types.ObjectId,ref:'Contact'}],conversation:{}});varConversation=mongoose.model('Conversatio

node.js - 使用 Mongoose 填充其他集合中的记录数

我有2个Mongoose模型,Book和Users。我想这样做:当找到一本书时,我想得到当前图书用户的数量。这是书本模型:varmongoose=require('mongoose');varUsers=require('../users');varschema=newmongoose.Schema({book_name:String,book_publisher:String});varbook=mongoose.model('book',schema);module.exports=book;这是用户模型:varmongoose=require('mongoose');varBoo

node.js - 使用 mongoose hook 重试保存重复键错误

我想使用mongoose中间件Hook重新尝试保存文档,以防初始保存因重复键错误而失败。用例如下:我的模型使用自动生成的slug进行识别。例如。item,item-2,item-3,…,item-n.如果item已经存在,则应向slug添加一个计数器。我无法提前检查“下一个”slug,因为我需要在任何情况下避免冲突。由于这个逻辑会涉及到几个不同的模型,所以我想把它隔离成一个mongoose插件。这个想法是否可行?例如。schema.post('save',handler)仅在成功保存时执行。还有其他我可以利用的钩子(Hook)吗? 最佳答案

json - Mongoose:保存具有不同模式的嵌套 JSON

大家。我想保存具有多个级别的JSON文档,例如,我有一个嵌套的JSON,其元素级别如下:{"created":"2015-11-1015:47:41.107Z","id_user":"01","version":"1""record":{"name":"CarlPowers","reference":[{"url":"www.test.com","created":"2015-11-1015:47:41.107Z"}]}}我想保存这个JSON,为每个元素使用不同的模式,因为我想要在我的MongoDB中使用不同的集合,我不想要一个包含嵌入元素的模式。varElementSchema=ne

当超过 100 个结果时,Node.js + mongoose find 卡住 Node

我有一个简单的mongoose模型,我在该模型上调用find,最大限制为100,它调用done回调:this.find({}).limit(100).exec(done);如果我将此行修改为(或任何更高的数字),则永远不会调用回调this.find({}).limit(101).exec(done);任何地方都没有错误,数据库继续工作,但是这个Node应用程序卡住,必须重新启动。如果我通过ssh进入服务器以连接到同一个数据库并连接到mongoshell,在同一个集合上,find({})会在不到一秒的时间内返回所有约700个集合。当我将同一个数据库克隆到我的本地PC并运行该应用程序以连接