📜  PouchDB面试问题

📅  最后修改于: 2020-12-01 08:31:22             🧑  作者: Mango

PouchDB面试问题

1)什么是PouchDB?

PouchDB是用JavaScript编写的开放源代码“浏览器”数据库API。它以CouchDB(为npm提供支持的NoSQL数据库)为模型。通过使用此API,可以帮助您构建脱机和联机工作的应用程序。 PouchDB在内部使用WebSQL和IndexedDB来存储数据。

有关更多信息:单击此处

2)PouchDB如何工作?

当应用程序离线时,PouchDB使用WebSQL和IndexedDB在浏览器中本地存储数据。当应用程序重新联机时,数据将与CouchDB和兼容服务器同步。

PouchDB使您可以无缝地通信本地数据库和远程数据库,而不会遇到任何差异。

3)PouchDB最重要的功能是什么?

PouchDB最重要的功能如下:

跨浏览器: PouchDB是跨浏览器。 PouchDB提供的API在每种环境下均相同,因此,PouchDB应用程序可以在各种浏览器中运行。

轻量级: PouchDB是一个非常轻量级的API,只需使用脚本标签就可以轻松包含它。

易于学习:如果您对任何编程语言都有先验知识,则PouchDB非常容易学习。

开源: PouchDB是一个开源应用程序,可在GitHub上获得。

4)哪些浏览器支持PouchDB?

以下是支持PouchDB的主要浏览器:

  • Firefox 29+(包括Firefox OS和Firefox for Android)
  • 铬30+
  • Safari 5+
  • Internet Explorer 10+
  • 歌剧21+
  • Android 4.0以上
  • iOS 7.1以上
  • Windows Phone 8+

5)使用PouchDB有什么优势?

使用PouchDB的优点:

  • PouchDB非常快,因为它驻留在浏览器中,您无需通过网络执行查询。这就是为什么它很快。
  • 可以同步任何受支持服务器的数据,这样我们就可以在线和离线运行应用程序。

6)如何在系统上安装PouchDB?

有几种方法可以在系统上安装PouchDB,但是通过使用Node.js和npm是安装PouchDB的最简单有效的方法。

有关更多信息:单击此处

7)如何在PouchDB中创建数据库?

通过使用构造函数,可以在PouchDB中轻松创建数据库。

句法:

new PouchDB(Database_name)

您必须安装Node.js,并且需要使用require()方法创建数据库的PouchDB软件包。

例:

//Requiring the package
var PouchDB = require('PouchDB');
//Creating the database object
var db = new PouchDB('my_database');
console.log ("Database created Successfully.");

有关更多信息:单击此处

8)PouchDB中db.info()方法的用途是什么?

db.info()方法用于获取有关数据库的信息。此方法还接受回调函数。

db.info([callback]) 

请参阅给定的示例,以使用info()方法从数据库中检索数据。这里的数据库名称是my_database。

例:

//Requiring the package
var PouchDB = require('PouchDB');
//Creating the database object
var db = new PouchDB('my_database');
//Database information
db.info(function(err, info) {
 if (err) {
   return console.log(err);
 } else {
   console.log(info);
 }
});

有关更多信息:单击此处

9)如何删除在PouchDB中创建的数据库?

db.destroy()方法用于销毁PouchDB中的数据库。

10)如何将db.destroy()方法与Node.js一起使用以删除数据库?

以下是使用db.destroy()方法的语法。它还接受回调函数。

句法:

db.destroy() 

请参见以下示例,如何使用db.destroy()方法。

例:

//Requiring the package
var PouchDB = require('PouchDB');
//Creating the database object
var db = new PouchDB('my_database');
//deleting database
db.destroy(function (err, response) {
 if (err) {
   return console.log(err);
 } else {
   console.log ("Database Deleted");
 }
});

有关更多信息:单击此处

11)如何删除存储在远程服务器CouchDB中的远程数据库?

在PouchDB构造函数中提供远程数据库CouchDB的路径,以删除存储在远程服务器CouchDB上的数据库。

例如:

//Requiring the package
var PouchDB = require('pouchdb');
//Creating the database object
var db = new PouchDB('http://localhost:5984/my_database');
//deleting database
db.destroy(function (err, response) {
 if (err) {
   return console.log(err);
 } else {
   console.log("Database Deleted");
 }
});

有关更多信息:单击此处

12)PouchDB中db.put()方法的用途是什么?

db.put()方法用于在PouchDB数据库中创建文档。

句法:

db.put(document, callback)

此方法还支持回调函数。

有关更多信息:单击此处

13)如何在PouchDB数据库中获取创建的文档?

db.get()方法用于检索在PouchDB数据库中创建的文档。此方法接受文档ID和可选的回调函数。

句法:

db.get(document, callback)

有关更多信息:单击此处

14)如何更新PouchDB数据库中的现有文档?

每次创建文档时,都会生成一个新字段_rev。它称为修订标记。 _rev的值是唯一的随机数,每次我们对文档进行更改时都会更改。

db.put()方法与_rev值一起使用来更新文档。

有关更多信息:单击此处

15)如何删除PouchDB中的文档?

db.remove()方法用于删除在PouchDB数据库中创建的文档。在此方法中,将传递id和_rev以删除现有文档,如以下代码所示。此方法接受可选的回调函数。完整的文档也可以代替id和_rev传递。

句法:

db.remove( docId, docRev, [callback] )

有关更多信息:单击此处

16)什么是批处理?如何在PouchDB中创建批处理?

批处理是PouchDB中的一系列文档。当您使用此方法创建文档时,如果未指定_id值,它将为所有文档批量创建唯一的ID。

您在PouchDB中创建的所有文档都可以存储在数组中,并且可以在此方法中作为参数传递。此方法还接受回调函数作为参数。

句法:

db.bulkDocs(docs, [options], [callback]) 

要知道如何创建批处理,请参见以下链接:

有关更多信息:单击此处

17)如何在PouchDB数据库中提取创建的批处理?

allDocs()方法用于从数据库中获取多个/大量文档。此方法还接受可选的回调函数。

句法:

db.allDocs() 

有关更多信息:单击此处

18)如何更新PouchDB数据库中已经创建的批处理?

bulkDocs()方法用于更新PouchDB中的文档数组。要更新批处理的值,您必须知道_id,_rev和要更新的值。

有关更多信息:单击此处

19)如何删除PouchDB中的批次?

bulkDocs()方法还用于删除文档数组。要删除批次,您必须知道文档的_id和_rev值。

有关更多信息:单击此处

20)PouchDB中的附件是什么?

在PouchDB中,附件是可以附加到文档的二进制对象。

21)如何在PouchDB中的文档中添加附件?

putAttachment()方法用于在PouchDB中向文档添加附件。您必须将文档ID,附件ID,MIME类型以及附件一起传递。此方法还接受可选的回调函数。

句法:

db.putAttachment( docId, attachmentId, attachment, type, [callback] ); 

有关更多信息:单击此处

22)如何检索添加了PouchDB的附件?

getAttachment()方法用于从PouchDB文档中检索附件。此方法始终返回blob或缓冲区对象。您必须传递文档ID和附件ID才能使用此方法。此方法还接受可选的回调函数。

句法:

db.getAttachment( docId, attachmentId, [callback] ); 

有关更多信息:单击此处

23)如何删除添加的PouchDB附件?

removeAttachment()方法用于从PouchDB文档中删除附件。要使用此方法,您必须传递文档ID,附件ID和_rev值。此方法还接受可选的回调函数。

句法:

db.removeAttachment ( docId, attachmentId, rev, [callback] );

有关更多信息:单击此处