Tag: mongodb

为什么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( […]

如何获取json对象的数组而不是mongoose文档

当我find如下操作时: Collection.find({name: 'Erik'}, function (err, docs) { // do momething }); 'docs'variables填充了全functionmongoose文档的数组。 但是我需要获得一个纯JSON对象的数组。 我知道我可以通过forEach循环访问'docs'数组,并使用.toJSON()方法获取对象。 mongoose支持我感兴趣的function吗?

如何让Mongo在远程服务器上运行?

当在远程aws服务器(ubuntu)上运行mongo时,在启动mongo实例后,运行mongo实例的最好方法是什么?

Mongoose中的Model.findOne()和Model.findById()有什么区别?

考虑我们正在根据_id值从MongoDB中search一个文档。 以下哪个代码是有效的? ModelObj.findById(IdValue).exec(callback); ModelObj.findOne({ '_id': IdValue}).exec(callback); 我觉得ModelObj.findById()是有效的,但是支持的原因是什么或者效率如何?

mongoose独特的validation错误types

我使用这个模式从npm的mongoose 3.0.3 : var schema = new Schema({ _id: Schema.ObjectId, email: {type: String, required: true, unique: true} }); 如果我尝试保存已经在数据库中的电子邮件,我希望得到一个ValidationError ,如果省略了required字段。 但是事实并非如此,我得到了一个MongoError: E11000 duplicate key error index 。 这不是一个validation错误(即使我删除了唯一的:true也会发生)。 任何想法为什么?

expressionjs错误:“明确反对res.sendfile:使用res.sendFile”

什么是正确的path设置? 在我的应用程序我这个代码我使用设置path发送文件。 app.get('/',function(req, res){//get,put,post,delete res.sendfile(__dirname + '/client/views/index.html'); }); 但它给这个错误: express deprecated res.sendfile: Use res.sendFile instead server.js:22:6 可以指点一下这里有什么错误