草庐IT

mongoose-dbref

全部标签

javascript - Mongoose 一次查询所有子文档

这是我的方案,我想做一个查询,得到所有文档和所有对象的文档。varCureSchema=mongoose.Schema({id:Number,therapist:{type:mongoose.Schema.Types.ObjectId,ref:'User'},supervisor:{type:mongoose.Schema.Types.ObjectId,ref:'User'},parents:{type:mongoose.Schema.Types.ObjectId,ref:'User'},children:{type:mongoose.Schema.Types.ObjectId,ref

javascript - 从 Mongoose 调用存储的 javascript 函数?

我在我的MongoDB实例中创建了一个存储的javascript函数,用于计算每个集合中的记录数。如果我转到我的mongoshell并输入:>db.eval("getTotals()");它按预期工作。如果我尝试像这样通过mongo调用它:totals=mongoose.connection.db.eval("getTotals()");console.log(totals);undefined被记录。有人看到我在这里做错了什么吗? 最佳答案 大多数mongoose调用不会像这样内联返回,而是期望传入一个回调来处理结果。完全未经测试

node.js - 带有 ObjectID 引用的 RESTful Mongoose

我的问题:如何在不发出一百万个http请求的情况下拥有一个使用mongoosejs的RESTfulmongodb实例?我的设置:我正在使用NodeJS对于后端MongooseJS.我正在使用AngularJS在前端,所以我决定使用angular-bridge恢复我的MongoDB数据库。我的模式:我有以下模式:注意:箭头的开头表示该对象引用了箭头结尾的对象(例如,comment有一个owningPost属性,它是对帖子的ObjectID引用)。此外,星号(*)表示“很多”,因此,一个帖子可以有很多评论,但一个评论只能引用一个帖子,一个流可以引用多个存储桶,一个存储桶可以有多个引用它的流

node.js - 使用 Mongoose 在投影中包含 Mongodb "_id"字段

我正在使用Node.js和Mongoose检索Mongo文档,如下所示:varapp=express();varThread=mongoose.model('threads',schema);app.get('/api/closed/all',function(req,res){Thread.find({IsCLOSED:true},function(err,post){res.send(post);});});但它没有返回“_id”字段,我错过了什么?在文档中它说默认情况下应该包含_id谢谢**编辑**解决方案:我必须在架构中指定它:varschema=newmongoose.Sch

MongoDB/Mongoose 对日期字段的唯一约束

我已经在这样的架构上声明了一个唯一索引:varstateChangeEventSchema=mongoose.Schema({client_timestamp:{type:Date,required:true,unique:true},state:{type:String,required:true}})并且能够插入具有相同时间戳的文档。我希望违反约束。我认为这可能是因为它在嵌入式文档上,但我在常规文档上尝试过,它仍然允许。我错过了什么?编辑:我发现了问题。我未能创建另一个索引,无论出于何种原因阻止创建任何其他索引。我通过使用找到了这个:StateChange.on('index',f

node.js - 扩展 Mongoose 模型而不存储所有属性

我正在构建一个基于Node.js+Express+Mongoose的CMS。我想要业务和数据访问方法的抽象层。所以我有包含调用数据库的方法的业务类。这些调用是直接使用Mongoose模型进行的,因此我的逻辑实体是Mongoose实体。问题是一些逻辑实体并不总是与其数据库实体相同。例如:我有一个名为“Item”的模型及其属性,这些属性必须存储到数据库中,这很好。现在,我需要一个新属性,一个名为“similar_items”的数组,它最终可以包含其他项目的列表,但我不想将此属性存储在数据库中。varitemSchema=newSchema({id:{type:Number,index:tr

node.js - 蒙戈 (+ Mongoose ) 错误 : Unable to find index for $geoNear query

这是我的架构:varActivitySchema=newSchema({loc:{type:[Number],index:'2dsphere'}});当我尝试使用near查找文档时:Activity.find().where('loc').near({center:[-71.072810,42.370227],spherical:true}).exec(function(err,docs){if(err)console.log(err);console.log(docs);})这是我得到的:{[MongoError:Unabletoexecutequery:errorprocessin

node.js - MongoDB/ Mongoose : find(query) and aggregate([ $match: query ]) results differ when using dates and $gte/$lte

我使用Mongoose构建聚合管道并且匹配工作正常,直到我想使用$gte和$lte运算符匹配日期。奇怪的是,如果我在常规find()中使用匹配查询,它会按预期工作:varquery={dueDate:{$gte:moment().toISOString()//I'vealsotriedusing$date{...}}};//findsentriesmatchingthequery[...,...]Model.find(query,callback);但是,使用$match和相同查询进行聚合不会:varaggregation=[{$match:query}];//findsnoentri

node.js - Mongoose 中多个键的唯一性

这个问题在这里已经有了答案:UniquedocumentsusingmultiplevaluesinMongooseSchema(1个回答)关闭7年前。如果我想让任何字段唯一并避免重复,我使用如下描述的语法varschema=mongoose.Schema({projectName:String,authorName:{type:String,index:true}});但是如果我想让(projectName,authorName)对的值唯一呢?我知道mongodb支持这个db.collection.ensureIndex({a:1,b:1},{unique:true})如何在mong

node.js - Mongoose :在 find() 之后填充

我是mongo和nodejs的新手,这是我正在尝试做的事情:该API用于根据查询检查数据库中是否存在现有条目。(a)如果没有现有文档,创建一个新文档,填充,发送到客户。(b)如果文档存在,返回文档,填充,发送到客户。问题:在场景(a)中,创建文档后,API向客户端发送“null”。可疑.populate()和.exec()在API完成创建新文档之前运行。代码片段返回null:console.log('InsideIF'+video_res);//returnsnull解决这个问题的最佳方法是什么?model_video.findOne(video_entry,function(err,