Nosql 如何在数据库中创建以下结构的数据库
我想在PockDB中创建一个具有以下结构的数据库 /dbNosql 如何在数据库中创建以下结构的数据库,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
--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”是数据库中的一个项目,其中包含一个联系人数组。请在你的评论后将我的答案扩展。因此,每次我想添加新联系人,我必须获取联系人数组并推送这个新对象,然后再次将其放入数据库?是的——因此我的评论是,这是一种糟糕的方法。按照我最初的建议,为每个联系人添加一个单独的文档。