Articles of mongodb

mongoosefindOneAndUpdate和upsert返回没有错误,没有文件的影响

我有一个非常小的模型: var CompanySchema = new mongoose.Schema({ name: { type: String, required: true, unique: true }, }); var Company = mongoose.model('Company', CompanySchema) 我试图添加一个文件,如果它不存在。 目前,我testing时没有任何文件: models.Company.findOneAndUpdate({ name: 'companyName' }, {upsert: true}, function(err, numberAffected, raw){ console.log(err, numberAffected, raw) }) 这是使用Mongoose文档的upsert选项 但是err为null , numberAffected为null。 为什么不更新我的文档?

为什么明确告诉我,我的默认视图引擎没有定义?

我正在使用nodejs和mongodb在后端为我正在工作的应用程序。 我正在使用快递testing应用程序,我试图使用ejs呈现我的HTML文件。 但是,我有我的默认视图引擎没有被定义的问题。 这是我的app.js: /** * Module dependencies. */ var express = require('express') , routes = require('./routes') , user = require('./routes/user') , http = require('http') , path = require('path'); var conf = require('./conf'); var app = express(); var mongoose = require('mongoose'); , Schema = mongoose.Schema , ObjectId = mongooseSchemaTypes.ObjectID; var UserSchema = new Schema({}) , […]

在正在运行的节点JS中使用正则expression式的Mongo查询variables

我在这里有一个问题。 我想在我的Node JS文件中查询我的MongoDB,使用像LIKE这样的常规关系数据库。 问题是我想要的东西不是一个文字…这是一个variables! 到目前为止,我还没有find好的办法。 这是我拿到的“durrr first try”镜头: var result = postData.replace(/\+/g,' ').substring(5); db.testlogwiki.find({"line_text" : /result/ }; //predictably only matches to the literal "result" as opposed to my variable testlogwiki是在Mongo中创build的…我已经运行了,而且这样做确实与包含“result”的“line_text”的数据库条目差不多。 这似乎是一个非常简单的问题

哪个数据库适合我的应用程序mysql或mongodb? 使用Node.js,Backbone,Now.js

我想使用前端:docs.google.com(没有它的API,完全在我自己的服务器上)使用前端:骨干后端:节点 你认为哪个数据库更好? mysql或mongodb? 应该支持良好的可扩展性。 我熟悉MySQL的PHP​​和我会很高兴,如果答案是MySQL。 但是我看到很多教程,他们使用mongodb,为什么他们使用mongodb没有mysql? 我应该使用什么? 任何人都可以给我链接一些示例应用程序(与源)build立使用骨干,节点,MySQL(或mongo)。 或至less应用程序。 与节点和MySQL 谢谢

使用Node.js和mongodb处理超时

我目前正在testing一些代码如何站在以下的情况: Node.js应用程序启动并成功build立到mongodb的连接 在成功build立连接之后,mongodb服务器将停止,所有后续请求都会失败 要做到这一点,我已经得到了使用官方驱动程序(在这里find: https : //github.com/mongodb/node-mongodb-native )的代码: MongoClient.connect('mongodb://localhost:27017/testdb', function(err, db) { app.get('/test', function(req, res) { db.collection('users', function (err, collection) { console.log(err); if (err) { // ## POINT 1 ## // Handle the error } else { collection.find({ 'username': username }, { timeout: true }).toArray(function(err, items) { console.log(err); if (err) { // ## POINT 2 […]

为什么Mongoose添加空白数组?

我试图开始使用Mongoose作为MongoDB的ODM与我的node.js应用程序。 我注意到,当我devise一个embedded式文档的模式,如果我不给它添加一个值,它会在Mongo中存储一个空白数组“[]”。 为什么是这样? 我试图将历史更改存储到logging中,而空白数组意味着该更改将删除该值。 这是一个示例模式。 schema.Client = new mongoose.Schema({ name:{type:String, required:true}, products:[{ name:{type:String, index:true}, startDate:Date, endDate:Date }], subdomain:{type:String, index:{unique:true}}, }) 当我用名字和子域名保存一个文档时,这是最终的文档。 { "name": "Smith Company", "products": [], "subdomain": "smith" } 为什么默认情况下会添加一个空白数组的产品,我该如何阻止它呢?

Node.js重用MongoDB引用

我无法理解node.js。 例如,MongoDB访问,这是我得到(mydb.js): var mongodb = require('mongodb'), server = new mongodb.Server('staff.mongohq.com', 10030, { auto_reconnect: true }), db = new mongodb.Db('mydb', server); function authenticateAndGo(db, handle) { db.authenticate('username', 'password', function(err) { if (err) { console.log(err); return; } console.log('Database user authenticated'); var collection = new mongodb.Collection(db, 'test'); handle(collection); }); } function query(handle) { db.open(function(err, db) { if( err ) […]

什么样的Javascript库可以评估对象的MongoDB-like查询谓词?

是否有一个JavaScript库,将允许我在类似于MongoDB的查询语言的DSL中表示对象谓词? 为了清晰起见,我希望能够说: var obj = { a: 1, b: 'abcdefg' }, qry = { a: { $gt: 0 }, b: /^abc/ }; if(query(qry).matches(obj)) { // do something appropriate since } 代替: var obj = { a: 1, b: 'abcdefg' }; if(obj.a>0 && qry.b.test(obj.b)) { // do something appropriate } 我正在使用Node.js,所以NPM上的任何东西都会很棒。 如果库可以从数组中select对象以及匹配单个对象,那将是额外的好处。 我回顾了这两个相关的问题,但是他们对我的情况并没有特别的帮助: 实现goMongoDB-like查询expression式对象评估 在PHP中评估类似MongoDB的JSON查询

Mongoose.js:强制总是填充

有没有办法指导模型永远填充某个领域? 就像在任何find查询中填充“field”一样: {field: Schema.ObjectId, ref: 'Ref', populate: true} ?

mongoose填充字段没有参考选项

我有3个模式: var User1Schema = new Schema({ name: {type:String , trim: true, required: true }, status: {type:Number, required: true, default:1} },{collection:"user_1"}); , var User2Schema = new Schema({ name: {type:String , trim: true, required: true }, email: {type: String, required: true, index: {unique: true} }, status: {type:Number, required: true, default:1} },{collection:"user_2"}); 和 var ConversationSchema = new Schema( […]