Nosql 如何在数据库中创建以下结构的数据库

Nosql 如何在数据库中创建以下结构的数据库,nosql,pouchdb,Nosql,Pouchdb,我想在PockDB中创建一个具有以下结构的数据库 /db --mycontacts ------|联系人1 ------|联系人2 ------|联系人3 ------|联系人4 这里的mycontacts是数据库db中的一个节点,其中包含所有联系人 我想知道如何在db中创建一个节点,并在用户添加新联系人时将联系人推送到该节点。使用PockDB非常简单: var db = new PouchDB('mycontacts'); // Create mycontacts db // Write c

我想在PockDB中创建一个具有以下结构的数据库

/db
--mycontacts
------|联系人1
------|联系人2
------|联系人3
------|联系人4

这里的
mycontacts
是数据库
db
中的一个节点,其中包含所有联系人


我想知道如何在db中创建一个节点,并在用户添加新联系人时将联系人推送到该节点。

使用PockDB非常简单:

var db = new PouchDB('mycontacts'); // Create mycontacts db

// Write contact1
db.put({
  _id: 'oscar@gmail.com',
  name: 'Oscar',
  Phone: '0987665544'
});
编辑:

最终,它是json。如果要将联系人存储为阵列,只需执行以下操作:

var db = new PouchDB('mydatabaser'); // Create mycontacts db

db.put({
  _id: '...',
  mycontacts: [{
    name: 'Oscar',
    phone: '0987665544'}, {
    name: 'Bob',
    phone: '0765432190'}, {
    name: 'Eric',
    phone: '0855664432'}
 ]
});

不过,有一点需要提醒的是,最后一种结构的效率可能低于第一种结构,因为每次添加新联系人时,都需要对现有文档进行修改,而不是添加新文档。不可变结构更适合CouchDB/PockDB/Cloudant数据库系列。

PockDB数据库(实际上是大多数或所有NoSQL数据库)没有结构。这就是为什么它们被称为“无模式”。你只需将你想要的任何文档放入其中。这里的“mycontacts”是一个数据库,但我想要的是“mycontacts”是数据库中的一个项目,其中包含一个联系人数组。请在你的评论后将我的答案扩展。因此,每次我想添加新联系人,我必须获取联系人数组并推送这个新对象,然后再次将其放入数据库?是的——因此我的评论是,这是一种糟糕的方法。按照我最初的建议,为每个联系人添加一个单独的文档。