草庐IT

mongoose-dbref

全部标签

node.js - Mongoose 类型错误 : Cannot use 'in' operator to search for '_id' in [object Object]

我是mongodb的新手,在过去的几天里,我一直在尝试将我的条目输入到我的mongolab实例中,但没有任何运气。似乎当我执行保存调用时,我收到一条错误消息:TypeError:无法使用“in”运算符在[objectObject]中搜索“_id”他们指的[objectObject]是我的颜色模式。我还没有找到答案,我想我会在研究更多的同时在这里发帖并行工作。我粘贴了一段我正在使用的内容,希望这只是我在做的一些愚蠢的事情。TIA!mongoose.connect(config.db.mongodb);varSchema=mongoose.Schema,ObjectId=Schema.Ob

node.js - 无法使用 Mongoose 在 NodeJS 中使用 $ 或查询

我有一个NodeJS应用程序,它有一个函数,它接受一个id并从我的MongoDB数据库返回一个与所述id相对应的对象。id可以匹配到我模型中的_id(ObjectID)或external_id(字符串),为什么我要过滤掉id等于_id或等于external_id的对象。我写了这段代码,但是当我在NodeJS中运行它时它似乎不起作用,但是如果我在终端的mongo中尝试它它工作正常:myModel.findOne({$or:[{_id:my_id},{external_id:my_id}]},function(err,model){...});由于它在终端中工作,我猜这两个模型对象的不同类

mongodb - Node、MongoDB、Mongoose 设计选择——创建两个集合或一个集合

我正在为我的应用程序的mongo集合和mongoose模式的大量设计选择而苦苦挣扎。我的应用程序需要两种帐户类型:学生和教师。这两种帐户类型之间的唯一相似之处在于它们都需要以下字段:名字、姓氏、电子邮件和密码。除此之外,它们是不同的(老师有“作业”、“测试”,学生有“作业”等)我仔细考虑了我的选择,并考虑了以下设计选择:使用mongoose-schema-extend,并为所有帐户。然后,扩展此模式以创建Teacher和学生模式。这意味着两个集合,因此一些冗余字段。登录和创建帐户也存在问题(检查用于登录的电子邮件是学生电子邮件还是教师电子邮件等)创建一个集合“accounts”,并添加

node.js - 通过任意排序跳过和限制 Mongoose 分页的替代方法

首先让我说一下,我读过(MongoDB-paging)使用skip和limit进行分页对性能不利,最好按dateCreated之类的东西排序并修改查询对于每一页。在我的例子中,我让用户指定参数来排序。有些可能是按字母顺序排列的。为这种类型的任意排序指定查询似乎相当困难。是否有一种性能友好的方式来进行任意排序的分页?例子mongoose.model('myModel').find({...}).sort(req.sort)...次要问题:我需要在多大程度上担心这个问题? 最佳答案 我认为你做不到。但在我看来,最好的方法是根据您的req

node.js - Mongoose model.save() 在更新时不持久保存到数据库

我正在开发一个mongoose/node.js/express应用程序。在我的route,我使用express'app.param()将我的模型实例放入请求中的方法-而不是在每个Controller操作中获取它。我在我的Controller中得到了show和create操作-但是我无法实现update操作。这是我的相关Controller代码://mymodel-controller.jsvarmongoose=require('mongoose')varMyModel=mongoose.model('MyModel');varutils=require('../../lib/util

node.js - 我如何根据现有的 Mongoose 查询检查单个文档?

我有一个Mongoose查询保存在一个变量中,然后我有一个相同集合的随机Mongoose文档,该查询是打开的。我想知道我的文档是否与查询匹配。我知道我可以对集合运行查询,然后查看结果集是否包含该文档,但我想节省一些性能并仅在一个文档上运行它。这可能吗?如果是,那又如何? 最佳答案 虽然可以进行本地查询,但如果无法进行本地查询,我建议您考虑执行以下操作:Example.findOne(existingQuery).where('id').equals(compareTo.id).select('id').exec(function(e

node.js - 尝试在 Mongoose 中动态生成 _id,但返回对象

基本上,我正在尝试对集合中的文档进行计数,并将新文档设置为_id。我尝试了多种组合,但似乎都不起作用。这是我尝试过的:varcount=PostModel.find(function(err,posts){if(!err){returnposts.length;}else{returnconsole.log(err);}});varpost=newPostModel({_id:count,title:request.body.title,content:request.body.content,tags:request.body.tags});返回:{message:'Casttonu

node.js - 使用 connect-mongo 和 mongoose 在 mongodb 中存储 session

当我尝试使用mongodb配置express.jssession存储时,左右出现错误。我正在为我的框架使用机车并配置了Mongoose。在我的02_mongoose.js的初始化程序目录中,我有这个。module.exports=function(){mongoose.connect('mongodb://localhost:27018/basbac');mongoose.model('User',UserSchema);}我知道我已连接到数据库,因为我可以将我的用户拉入我的Controller。DeveloperController.show=function(){varself=t

mongodb - 在 Mongoose 中查询最后 10 条减去最后 5 条记录

varq=models.Post.find().sort('date',-1).limit(10);q.execFind(function(err,posts){//previous6to10threcordsneeded.});上面会查询最近10条记录。我可以从中删除前5个:-posts.splice(0,4);获得第6到第10的记录。但是是否有直接查询此类集合的直接方法?喜欢varq=models.Post.find().sort('date',-1).limit(5to10); 最佳答案 我猜你在找models.Post.fi

javascript - 如何在不选择模式配置参数的情况下使用 Mongoose 在 MongoDB 模式实例化的关联数组/对象中执行 foreach?

在谷歌上搜索了几个小时,却找不到可靠的答案。也许我使用了错误的搜索参数?不管怎样,我走了:我是MongoDB的新手,我试图在保存模式实例化之前更改它的值。我知道有很多关于使用“保存”中间件的帖子,但我认为它不能解决我的问题。我有这样的架构设计:varfooSchema=newmongoose.Schema({data:{type1:{objectfoo:[],objectbar:[]};type2:{objectxxx:[],objectyyy:[]};}});这不是一个无限对象,所以我不想做一些花哨的事情,比如将它链接到另一个模式或集合。我想做这样的事情:for(iindata){f