Tag: mongoose

mongoosevs mongodb(nodejs modules / extensions),哪个更好? 为什么?

我刚到Node.js,看到MongoDB有很多libs,最stream行的就是这两个:(mongoose和mongodb)。 我可以得到这些扩展的优点和缺点吗? 这两个有更好的select吗? 编辑:find一个新的库,似乎也有趣的节点蒙古语,是“蒙古DeadBeef是一个超棒的Mongo DB node.js驱动程序,试图密切近似的蒙古语shell。 (readme.md) https://github.com/marcello3d/node-mongolian 这只是为了增加更多资源给那些认为这个的新人,所以基本上蒙古人就像一个ODM …

Node.js Mongoose.jsstring到ObjectId函数

有没有一个函数,使用mongoose把一个string变成一个objectId节点? 模式指定的东西是一个ObjectId,但是当它从一个string保存,mongo告诉我,它仍然只是一个string。 对象的_id例如显示为objectId("blah") 。

Mongoose:findOneAndUpdate不会返回更新的文档

以下是我的代码 var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); var Cat = mongoose.model('Cat', { name: String, age: {type: Number, default: 20}, create: {type: Date, default: Date.now} }); Cat.findOneAndUpdate({age: 17}, {$set:{name:"Naomi"}},function(err, doc){ if(err){ console.log("Something wrong when updating data!"); } console.log(doc); }); 我已经在我的mongo数据库中有一些logging,我想运行这个代码来更新哪个年龄为17的名字,然后在代码的最后打印结果。 但是,为什么我仍然从控制台得到相同的结果(不修改名称),但是当我去到mongo db命令行并键入“db.cats.find();”。 结果是修改。 然后我又回到运行这个代码,结果被修改。 我的问题是:数据被修改,但为什么我仍然在console.log时第一次得到原始数据。

比较mongoose_id和string

我有一个node.js应用程序,它将一些数据粘贴到一个对象中,如下所示: var results = new Object(); User.findOne(query, function(err, u) { results.userId = u._id; } 当我做一个if /那么基于存储的ID,比较从来就不是真的: if (results.userId == AnotherMongoDocument._id) { console.log('This is never true'); } 当我做了两个ID的console.log,他们完全匹配: User id: 4fc67871349bb7bf6a000002 AnotherMongoDocument id: 4fc67871349bb7bf6a000002 我假设这是某种数据types的问题,但我不知道如何将results.userId转换为一个数据types,将导致上述比较是真实的,我的外包大脑(又名谷歌)一直无法帮助。

将created_at和updated_at字段添加到mongoose模式

有没有办法将created_at和updated_at字段添加到mongoose模式中,而不必每次都传递新的MyModel()被调用? created_at字段将是一个date,并且仅在创build文档时添加。 只要在文档上调用save(),updated_at字段就会用新的date更新。 我在我的模式中试过这个,但是除非我用expcitly添加它,否则这个字段不会显示出来: var ItemSchema = new Schema({ name : { type: String, required: true, trim: true } , created_at : { type: Date, required: true, default: Date.now } });

停止Mongoose为子文档数组项目创build_id属性

如果你有子文档数组,Mongoose会自动为每一个创build一个id。 例: { _id: "mainId" subdocArray: [ { _id: "unwantedId", field: "value" }, { _id: "unwantedId", field: "value" } ] } 有没有办法告诉Mongoose不要为数组中的对象创buildid?

如何在Node.js中与Mongoose分页?

我正在写一个Node.js和mongoose的Web应用程序。 我如何分页从.find()调用得到的结果? 我想在SQL中可以使用与"LIMIT 50,100"相媲美的function。

什么是MongoDB中的“__v”字段

我正在使用Mongoose版本3与MongoDB版本2.2。 我注意到__v字段已经开始出现在我的MongoDB文档中。 这与版本控制有关吗? 它是如何使用的?

如何在Mongoose中更新/插入文档?

也许是时候了,也许是我在稀less的文档中淹死了,不能把我的头围绕在Mongo的更新的概念:) 这是交易: 我有联系人模式和模式(缩短的属性): var mongoose = require('mongoose'), Schema = mongoose.Schema; var mongooseTypes = require("mongoose-types"), useTimestamps = mongooseTypes.useTimestamps; var ContactSchema = new Schema({ phone: { type: String, index: { unique: true, dropDups: true } }, status: { type: String, lowercase: true, trim: true, default: 'on' } }); ContactSchema.plugin(useTimestamps); mongoose.model('Contact', ContactSchema); //is this line superflous?? var Contact […]

查找包含特定值的数组

如果我有这个模式… person = { name : String, favoriteFoods : Array } … favoriteFood数组中填充了string。 我怎样才能find所有使用mongoose的“寿司”作为他们喜欢的食物? 我希望有以下几点: PersonModel.find({ favoriteFood : { $contains : "sushi" }, function(…) {…}); (我知道在mongodb中没有$contains ,只是解释了我在得知解决scheme之前期望find的东西)