📜  MongoDB连接方法

📅  最后修改于: 2020-11-23 01:30:37             🧑  作者: Mango

MongoDB连接方法

MongoDB连接方法包括用于启用和禁用与我们的数据库的连接的所有方法。

#1连接(URL,用户,密码)

connect方法用于建立与MongoDB对象的连接。该方法还将引用返回到数据库。在某些情况下,我们可以改用Mongo()实例及其getDB()方法。

db = connect("localhost:27017/JTPDatabase")

上面的查询将返回对JTPDatabase的引用,并实例化与在localhost接口上运行的MongoDB对象的新连接,并且:

#2。 Mongo(主机,ClientSideFieldLevelEncryptionOptions)

mongo是JavaScript构造函数,用于为属于mongo shell或JavaScript文件的数据库连接创建实例。

使用以下查询将创建来自mongo shell的新连接对象:

cluster = Mongo("mongodb://mymongo.example.net:27017/?replicaSet=myMongoCluster")

为了与mymongo.example.net:27017群集进行交互,我们将针对群集对象发出以下查询:

myDB = cluster.getDB("myDB");
myColl = myDB.getCollection("myColl");

#3。 Mongo.getDB( )

getDB方法用于提供对属于mongo shell或JavaScript文件的数据库对象的访问。

db = new Mongo().getDB("JTPDatabase");

上面的查询建立了与在localhost接口上运行的MongoDB对象的新连接,并返回对“ JTPDatabase”的引用:

#4。 Mongo.isCausalConsistency()

顾名思义,该临时一致性用于返回布尔结果,该结果指示是否在连接对象上启用了实例的因果一致性。

var conn = Mongo("localhost:27017");
conn.isCausalConsistency()

db.getMongo().isCausalConsistency();

上面的查询确定是否在Mongo连接对象上启用了因果一致性,该对象与mongo Shell的全局数据库变量关联:

#5。 Mongo.setCausalConsistency( )

setcasualconsistency()方法启用或禁用指定连接对象上的因果一致性。默认情况下,此方法将删除对象的连接。

下面的查询启用与mongo shell的全局数据库变量关联的MongoDB实例的因果一致性:

db.getMongo().setCausalConsistency();

如果要检查因果一致性是否已为连接启用。您可以使用Mongo.isCausalConsistency()方法。

db.getMongo().isCausalConsistency();

#6。 Mongo.setReadPref(mode,tagSet)

在Mongo连接对象上使用setReadPref方法可控制对指定副本集成员的所有查询的客户端路由的响应。

例子

在以下示例中,将使用读取首选项模式将读取操作定位到辅助成员。

db.getMongo().setReadPref('secondary')

对于特定的标签,secondary将包括标签集数组:

db.getMongo().setReadPref(
   "secondary",
   [ { "datacenter": "JTP" },   
      { "region": "North"},      
      { }   ])

#7。 Mongo.startSession( )

启动会话方法用于启动连接会话。会话ID将通过mongo shell分配给与该会话关联的命令。

例子

db = db.getMongo().startSession({retryWrites: true, causalConsistency: true}).getDatabase(db.getName());

要启动启用了可重试写入的会话,您必须使用上面的查询,这将帮助您以因果一致性来启用它。

#8。 Mongo.watch(管道,选项)

watch方法允许我们为指定的副本集或指定的分片群集打开更改的流游标。除本地,配置和管理数据库外,副本集将更改为报告特定数据库中所有非系统集合的报告。

该查询示例在mongoShell的副本集上打开更改流游标。除admin,local和config数据库外,所有数据库将通过返回的游标向所有非系统集合报告数据更改。

watchCursor = db.getMongo().watch()

我们可以使用cursor.isExhausted()方法来迭代游标以检查是否有新事件,并确保仅在对流游标进行更改的情况下才退出循环。

while (!watchCursor.isExhausted())
{
   if (watchCursor.hasNext()){
      printjson(watchCursor.next());
   }}

#9。会话()

session方法在mongo shell中为连接建立会话对象。使用Mongo.startSession()为mongo shell中的连接建立会话,

将启动与Mongo Shell的全局数据库变量关联的Mongo连接对象上的会话。之后,要检索与会话关联的数据库对象,它将使用Session.getDatabase()方法。

var session = db.getMongo().startSession();
db = session.getDatabase(db.getName());