是否有MongoDB shell的findById快捷方式?

And*_*ers 4 mongodb mongodb-query

我在mongo DB shell中最常见的事情是通过ID查找对象,例如:

db.collection.find({_id: ObjectId("55a3e051dc75954f0f37c2f2"})
Run Code Online (Sandbox Code Playgroud)

我一遍又一遍地这样做,我发现不得不一遍又一遍地用ObjectId包装id.我希望我有findById像猫鼬一样的速记形式.我觉得shell应该足够聪明,以便弄明白我的意思,例如:

db.collection.find("55a3e051dc75954f0f37c2f2")
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?或者有没有其他方法可以在mongo shell中通过id查询?

mne*_*syn 5

幸运的是,您可以非常轻松地扩展shell,例如通过将以下方法添加到启动客户端时执行的~/.mongorc.js文件mongo:

DBCollection.prototype.findById = function(id) {
    return db.getCollection(this._shortName).find( { "_id" : ObjectId(id) } );
}
Run Code Online (Sandbox Code Playgroud)

然后你可以执行类似的事情 db.collection.findById("55a3e051dc75954f0f37c2f2")


Cam*_*ilo 3

的简写find({_id: ObjectId("...")})find(ObjectId("...")).