Tag: mongoose

Mongoose使用'path数组'来填充许多对象{path:objectpath,model:'Model'}

在我的networking应用程序中,订购(SingleOrder)产品后,客户应该检查优惠。 如果可用,那么我应该添加订单到ComboOfferOrder。 在那里,我想检查订单的付款状态。 另外,我必须得到整个产品清单。 我在我的数据库中的所有值在后端。 但是我无法为我的api方法填充“SingleOrder”中的任何对象。 我有下面的模式。 *User* { name : String, email : Sring, role : String } *BankTransaction* { type : String, transationReference: String, date : Date, amount : Number } *ComboOfferOrder* { customer :{ type :Schema.ObjectId, ref : 'User' }, order : { type :Schema.ObjectId, ref : 'SingleOrder' }, productList : [{ […]

在mongodb中制作或模拟连接

我想用mongoose在mongodb中模拟连接查询。 没有嵌套数据,只有两个Schema,其中OrderSchema:_id引用了DetailSchema:orderId 得到所有订单然后逐一查询每个细节是一个糟糕的解决scheme。 我曾尝试使用mongoose填充,但只有如果我改变了计划,这是不可能的。 我简直想不出干干净净的做法! var OrderSchema = mongoose.Schema({ _id: Number, customerId: String, employeeId: Number, orderDate: String, requiredDate: String, shippedDate: String, shipVia: String, freight: Number, shipName: }); exports.OrderModel = mongoose.model('orders', OrderSchema); var DetailsSchema = mongoose.Schema({ orderId: Number, productId: quantity: Number, discount: Number });

mongoose查询与哪里

我有一个mongoose查询,发现用户得到,但尚未赎回的所有奖励。 Reward.find({user: user, redeemed: false}).exec(callback) 我想把它变成所有没有赎回的报酬,以及今天所赎回的报酬。 这是正确的路要走。 Reward.find({user:user}) .where('redeemed').equals('false') .where('redeemed').equals('true').gt(yesterday) .exec(callback)

我试图填充一些用户信息到文章查询

Mongo Populate 我试图填充一些用户信息到文章查询 exports.articleByID = function(req, res, next, id) { Article.findById(id).populate('user', 'displayName', 'email').exec(function(err, article) { if (err) return next(err); if (!article) return next(new Error('Failed to load article ' + id)); req.article = article; next(); }); }; 我得到错误 MissingSchemaError:架构尚未注册模型“电子邮件”。 有任何想法吗?? 这是架构 'use strict'; /** * Module dependencies. */ var mongoose = require('mongoose'), Schema = mongoose.Schema; /** […]

覆盖以前的文件的合成索引

我想创build一个模型MongoDb使用mongoose,我想确保只有一个文件存在一个特定的用户和文件。 var FileStatusSchema = new mongoose.Schema ({ file: mongoose.Schema.Types.ObjectId, user: mongoose.Schema.Types.ObjectId, hasSeen: { type: Boolean, default: false } }) FileStatusSchema.index = ({file: 1, user: 1}, {unique: true}) 现在,如果我尝试使用已存在的文件和用户的组合保存文档,则会引发重复的键错误。 有什么办法可以configurationMongoDB覆盖文档,而不是引发exception?

Mongodb数据模型策略指导/build议

我刚刚开始与节点和mongodb,并试图了解如何最好地构造数据(来自一生的SQL)。 所以我已经结束了大部分embedded式的数据结构,我相信这些关系是合乎逻辑的,但是在兔子洞之前,我们需要一些外部的反馈信息! 这里是我提出的新的mongodb数据模型: user name (string) email (string) avatar (string) password (string) newsletter (binary) account admins user (objectId) name (string) logo (string) sub (number) stripe (string) property users user (objectId) party (number) role (number) admin (binary) name (string) ecd (date) complete (binary) activity description (string) user (objectId) time (date) task_group position (number) name (string) task […]

独特和稀疏的模式级索引MongoDB和Mongoose

我试图创build一个模式的两个领域的索引,在MongoDB中使用Mongoose是唯一和稀疏的,如下所示: var ArraySchema = new Schema ({ user_id: {type: mongoose.Schema.Types.ObjectId, ref:'User'}, event_id: {type: mongoose.Schema.Types.ObjectId, ref:'Event'} }, {_id:false}); ListSchema.index({user_id:1, event_id:1}, {sparse:true, unique:true}); 然后将其用于用户架构中的数组中,如下所示: var User = new Schema({ arrayType1 : { type: [ArraySchema] }, arrayType2 : { type: [ArraySchema] }, arrayType3 : { type: [ArraySchema] } //More specifications for user schema… }); 但是,当试图保存没有array字段的多个用户时,重复字段会引发错误。 Mocha中的错误与此类似: array.event_id_1 dup […]

正确的方式使用.populate()mongodb Node.js

我正在尝试在我的评论部分中将每个评论附加完整的用户模型。 由于mongodb没有连接,我一直在试图找出如何使用.populate()从控制器添加用户对象。 据我所知,使用填充函数只有两件事你必须做的。 在模型中定义一个ref。 在定义了ref的字段的名称上调用.populate()。 我已经将模型中的ref定义为“用户”模型: var commentSchema = new mongoose.Schema({ author: { type: String, ref: 'User' }, description: String, commentID: String, hasParent: String, parentComment: String, timestamp: { type: Number, default: 0 }, }); 然后我试图将用户模型添加到注释对象中的作者字段: Comment .find() .populate('author') .exec(function (err, comments) { console.log(comments); }); 有没有我失踪的一步? 我希望在每个评论的作者字段中看到所有的用户对象的评论。

如何用sportsname过滤

我正在开发一个应用程序,我必须通过sportsname过滤。 我在后端使用Node.js和MongoDB。 这是我的代码: router.route('/user/:_id/explore/:sportsname') .get(function(req, res, next){ var query = Host.find(); if(req.query.sportsname){ query.where({sportsname:req.query.sportsname}); } query.exec(function(err,sportsname){ if(err) return next(err); res.json(sportsname); console.log(sportsname); }) }); 这是文件。 我想通过sportsnamesearch用户 [ { "_id":"5460e2af4ee5216f17000061", "maxplayer":"1", "minplayer":"11", "date":"10 August 2014", "venue":"google", "time":"Afternoon", "sportsname":"Lawn Tennis", "__v":0 }, { "_id":"5460ff1b4ee5216f17000065", "maxplayer":"0", "minplayer":"9", "date":"10 October 2014", "venue":"google", "time":"Early Morning", "sportsname":"Cricket", "__v":0 }, { "_id":"5461a4014ee5216f17000089", "maxplayer":"4", "minplayer":"29", […]

需要从$ aggreagate小组阶段返回x个文档

如果我有一堆文件 {_id: mongoId, submittedTo: mongoId, viewCount: 2 } 如果我想返回x数量最高的viewCount为最低的文档(每个submitTo)。 如何使用mongoose/ mongodb进行聚合? 我从这个问题中了解到了$第一个使用MongoDB聚合在数字字段中返回最大值的文档,但是当您需要返回多个文档(每个$ group的_id)时,它的用例似乎无效。 到目前为止,我有 {$sort: {viewCount: -1}}; {$group : {_id: '$submittedTo'}}; 但不知道还有什么需要添加到小组赛阶段,以达到所需的效果。