Tag: mongodb

如何在OpenShift上从nodejs盒式磁带访问mongodbvariables?

我正在尝试将应用程序原型部署到openshift。 它可以在127.0.0.1的地方使用mongodb。 我试图让它在openshift环境中尊重process.env.OPENSHIFT_MONGODB_DB_URL ,但是在运行时我的nodejs盒式磁带无法访问该variables。 我可以看到它正在我的应用程序的shell环境中设置。 当我做rhc ssh然后export我看到OPENSHIFT_MONGODB_DB_URL=[full_url_with_password] ,它看起来不错。 但是,当我在node.js应用程序中调用process.env.OPENSHIFT_MONGODB_DB_URL它返回undefined 。 为了仔细检查,我在node.js应用程序中执行了一个console.log(util.inspect(process.env)) ,而我所看到的与我在appication的安全shell中看到的不同。 没有OPENSHIFT_MONGODB_ *variables是暴露给我的node.js应用程序的环境中。 如何访问不同墨盒的variables? 或者这是一个configuration错误?

如何预装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驱动程序(node.js)添加一个属性(属性名是variables)

我collections的文档结构就是这样。 { "_id" : ObjectId("54e74de2950fd3a4e5f0a37a"), "userName": "Any_user", "ratings": { "rating1" : [ ], "big_rating" : [ ] } } 在MongoDB客户端(mongo.exe)添加我需要看起来像这样 db.userContent.update({userName: "NXTaar"}, {$set: {"ratings.variable_name": []}}) 我需要为MongoDB node.js驱动程序的function是的,我知道“属性名string”的事情,我可以传递variables的属性名称。 这是我试图做的: var rating = {}; var title = 'some_string'; ratings[title] = []; usercontent.update({userName: "some_user"}, {$set: ratings}, function (err, doc) {…}) 这一行添加一个新的对象的文件与属性的名称 usercontent.update({userName: "some_user"}, {$set: {ratings: ratings}}, function (err, […]

“未定义”使用多个callback函数(Node + EJS)

在我的app.js中,我有以下几点: app.get('/', function(request, response, next) { myLocation.find(function(err, locations) { if (err) { response.send(501, 'There was an error'); } else { response.render('index', { locations:locations }); } next(); }); app.get('/', function(request, response) { mySupplier.find(function(err, suppliers) { if (err) { response.send(501, 'There was an error'); } else { response.render('index', { suppliers:suppliers }); } }); }); }); 然后,我试图在我的index.ejs中显示位置和供应商的所有信息。 我可以同时工作,但不能同时工作。 […]

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?

Mongodb $并没有正常工作

我尝试使用mongodb $和我的nodejs应用程序查找数据,但无法正常工作。 我的代码 – var brand = req.param('Brand').split(','); brand = '"' + brand.join('","') + '"'; if (query != '') query += ',' query += '{"pro.brand": {$in:['+ brand +']}}' itemdata.find({$and:[query]}, function(err, product) { if (err) { return res.send({info: "Opps sorry"}); } else { res.json({deals: product}); } }); 当我手动把查询({“pro.brand”:{$ in:[“Micromax”]}}),那么它的工作。 否则,它不工作(它会返回所有的数据)。

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: […]