2017-04-04 437 views
1

是什么区别:MongoDB db.getCollection.find和db.tablename.find之间的区别?

db.getCollection('booking').find() 

db.booking.find() 

他们是否完全一样,或者我应该使用哪一个?

db.getCollection('booking').find({_id:"0J0DR"}) 

db.booking.find({_id:"0J0DR"}) 
+3

https://docs.mongodb.com/manual/reference/method/db.getCollection/这就是你需要的一切 – lascort

+0

那个人解释说insertOne不起作用,或者是什么:-D说实话docs.mongodb.com他们的例子很糟糕,他们的描述不清楚(你不能复制粘贴并尝试它)。我在这里找到的关于stackoverflow的例子非常好!无论如何,它看起来像是完全一样。 – torbenrudgaard

+0

文档中的示例是正确的。你不能在db.auth上执行insertOne,但是如果你使用db.getCollection(“auth”)(显然不相同),你可以这样做。我认为这些文档非常好。 – lascort

回答

3

是的,他们是完全一样的,你也可以使用。

当您的集合名称包含特殊字符时,第一种形式db.getCollection(collectionName).find()会变得非常方便,否则会导致其他语法冗余。

例子: 假设您的收藏有与_开始或相匹配的数据库壳方式或有空间的名称,那么你可以使用db.getCollection("booking trips").find()db["booking trips"].find()哪里做db.booking trips.find()是不可能的。

+1

谢谢 - 整个“在他们的docus中设置一个光标”的东西让我困惑。在MemoDB中,你可以设置一个游标,然后用一个命令遍历行,并用另一个命令获取所有行:) – torbenrudgaard

+0

确实,文档的某些部分需要注意或者错过一些突出的信息,然后你可以在这里补充一下:) – chridam

相关问题