Tag: mongoose

如何预装MongoDB文档?

我正在用Node和MongoDB编写一个Web应用程序(用mongoose) – 我有一个具有预定义数据的集合(图像链接,用户将select其中的一个 – 它们的图像链接设置为closures并赢得)在应用程序的运行过程中不能被改变),并且需要与其他收集进行连接。 我不知道为此创build一个集合还是将数据保存在单个JSON文件中更好。 但是因为我需要join这个集合与其他集合,我决定将数据保存在数据库中。 现在的问题是我如何创build数据库中的数据一次,每次我提出的节点服务器的数据将不会再次创build? (东西像upsert)? 哪里是最好的地方添加此方法? 在Schema模块中还是在哪里? 谢谢。

保存()后重新加载对象

我正在使用mongodb和mongoose 。 我使用的文档模式的某些属性具有保存文档时设置的默认值。 我打算在调用文档实例的save()函数后读取这些属性。 但是, save()似乎没有将更改应用于文档实例: doc.save(); console.log(doc.somePropertySetByDefault); // undefined 有没有办法可以做到这一点,而不写一个完整的查询(即Doc.findOne(…) )?

MongoDB中用户特定的数据库

我目前正在Node js和MongoDB上开发一个库存pipe理软件。 我对MongoDB相当陌生,在我的大部分项目中都曾在Oracle和MySQL中工作过。 是否有可能为每个使用我的软件的客户创build一个单独的数据库模式,每个客户只能访问他的数据库模式和集合副本? 在Oracle数据库中select数据的等价物将是从User1.table中select*,从User2.table中select*等 另外,如果可能的话,如何使用像mongoose这样的节点js mongo db客户端来实现呢? 我查看了MongoDB文档,但主要讨论了如何将用户添加到数据库中进行授权。 我很抱歉,如果这似乎是一个愚蠢的问题,但编号欣赏,如果有人能指出我在这个正确的方向。

为什么Mongoose在DB中存在响应空字段(已解决)

我不知道这是一个mongoose错误还是我做错了,我的问题是: 我在mongoDB中有一些文件,这些文件有一个叫做地址的属性,里面有一个国家,它是一个对象ID,但是当我用mongoose做查询时,这个国家ID是“null”: mongoose纲要 { password: { type: String, trim: true, required: true, index: true }, email: { type: String, trim: true, required: true, index: { unique: true } }, address: { address: { type: String, default: '' }, city: { type: String, default: '' }, zipCode: { type: String, default: '' }, country: { type: […]

MongoDB,Mongoose和复合_id

Mongodb和Mongoose.js的新手 我创build了以下架构和模型: var schema = new Schema({ _id: {part1: String, part2: Number}, name: String }); mongoose.model('myDoc', schema); 我可以保存这个,当我在mongo命令行上查看它时,它看起来很好。 然而在mongoose当我做的时候: myDoc.find({}, function(err, recs) { var rec = recs[0]; console.log('—-' + JSON.stringify(rec)); }); 我得到我的对象打印出来,但有以下例外: Cast to ObjectId failed for value "[object Object]" at path "_id" 我已经看到了一些解释,但我不明白我做错了什么,以及我需要如何解决它。 根据mongodb文档,_id可以是bsontypes。 我究竟做错了什么? 不是{part1:String,part2:Number}一个bson?

Mongoose.js忽略子模式中的默认值

我目前正在用MongoDB和mongoose写一个Web应用程序。 我定义了一个具有一系列子文档的文档模式。 我在一个不同的模式中定义了子目录。 子文档具有默认值的字段,例如: end: {type: Date, default: Date.now} 。 不幸的是,在创build带有一些子文档的父文档时,只有显式设置了子文档的字段。 似乎mongoose正在忽略default选项。 你们有什么想法我做错了吗? 编辑: employment.model.js var Shift = require('./shift.model.js').ShiftSchema; var EmploymentSchema = new Schema({ title: {type: String, required: true}, …. shifts: [Shift] }); shift.model.js var ShiftSchema = new Schema({ title: {type: String}, …. info: {type:String, default: 'Hallo'}, start: {type: Date, default: Date.now, index: true}, end: […]

使用Mongoose更新Node.js中由find()方法返回的结果

我是Node.js的新手。 我的Node.js应用程序有一个名为Selfie的模型。 # model/selfie.js var mongoose = require('mongoose'), Schema = mongoose.Schema, selfieSchema = new Schema({ path: { type: String }, caption: { type: String }, sent_mod: { type: Number, default: -1 }, // -1 not sent, 0 sent, 1 accepted display_count: { type: Number, default: -1 }, // -1 not sent, 0 sent, 1 displayed […]

摩卡超时无论如何都超过了

我目前正在摩卡书写我的nodejs应用程序的testing。 我的API调用要求我login,所以我想创build一个包装testing套件,创build一个testing用户,然后调用实际的testing套件。 下面是代码的样子: var request = require('supertest'); var config = require('../config/config'); var AdminUser = require('../models/Authmodel'); function configureAuth(test_suite) { var url = "localhost:" + config.port; var email = "test@test.com"; var password = "test_password"; var admin; var token; describe("Signup User", function() { it("should signup new user", function(done) { request(url) .post('/auth/signup') .send({ email: email, password: password }) .expect(200) […]

如何dynamic地在MongoDB上创build子文档

我有一个集合的MongoDB数据库如下: var mongoose = require('mongoose'); var journalSchema = mongoose.Schema({ title : String, journalid: {type:String, index: { unique: true, dropDups: true }}, articleCount : type:Number, default:1, }); module.exports = mongoose.model('Journal', journalSchema); 现在我的数据库正在增长,我希望每年都有一个“文章数量”字段。 我可以按照以下years : [{articleCount : Number}]创build一个数组years : [{articleCount : Number}]并通过访问journal.years[X]来填充特定年份,其中X对应于1997年的0,1998年的1年等。 但是,我的数据dynamic报废,我想我的快递服务器中的一个functionarticleCount增加基于年份。 例如: function updateYear(journalid, year, callback) { Journal.findOneAndUpdate( {'journalid':journalid}, {$inc : {'articleCount' : 1}}, // […]

我如何使用mongoose/ mongodb在单个查询中应用$ match,$ group和$ sum

我正在尝试用我对MongoDB的基本知识来find解决scheme。 我有像下面的数据 { _id: 45556, "name": "John", "gender": "male", "lunch_preference":[ {"outlet":"KFC", "day":"monday", "spent":300}, {"outlet":"Mc", "day":"friday", "spent":250}, {"outlet":"dominos", "day":"sunday", "spent":400} ] } { _id: ab123, "name": "Peter", "gender": "male", "lunch_preference":[ {"outlet":"dominos", "day":"tuesday", "spent":150}, { "outlet":"Mc", "day":"wednesday", "spent":350}, {"outlet":"dominos", "day":"sunday", "spent":300} ] } 在这里,我正在过滤数据使用$match我的查询过滤: db.lunch.aggregate([{"$unwind":"$lunch_preference"}, {$match: {"lunch_preference.outlet": "dominos"}},{$match: {"lunch_preference.day": "sunday"}}]) 这个查询工作正常! 现在我想计算(花费的总和)上述过滤数据的花费,所以我申请如下。 db.lunch.aggregate([{"$unwind":"$lunch_preference"}, {$match: {"lunch_preference.outlet": "dominos"}}, {$match: […]