val underlying: MongoDBCollection
def find(doc: DBObject): DBCursor = underlying find doc
这是一个假设的计划。这显然是find
方法的有效实现,但我不明白方法体underlying find doc
如何产生值。 find
方法如何评估doc
参数,以及underlying
变量如何影响任何内容?为什么不将find doc underlying
或find doc
作为方法正文?
答案 0 :(得分:2)
当一个方法只接受一个参数时,在对象上调用方法时,可以省略前缀.
和大括号()
。
underlying find doc
与
相同underlying.find(doc)
它使用find
作为参数调用MongoDBCollection
实例underlying
上的doc
方法。
答案 1 :(得分:0)
在MongoDB中,您可以将对象传递给find函数:
db.<collection>.insert({ "a": "aa"})
db.<collection>.findOne()
{ "_id" : ObjectId("5516c37adedf9a4f8cffc7bd"), "a" : "aa" }
db.<collection>.findOne({ "_id" : ObjectId("5516c37adedf9a4f8cffc7bd"), "a" : "aa" })
{ "_id" : ObjectId("5516c37adedf9a4f8cffc7bd"), "a" : "aa" }
您可以像这样编写scala代码:
val collection: MongoDBCollection
def find(doc: DBObject): DBCursor = collection.find(doc)
find
是MongoDBCollection
的函数,underlying
是集合的一个实例(应该初始化为指向某个集合)。 doc
是一个MongoDB对象,它被传递给find作为参数。