Foo: {
id: 100,
barId: 123,
startDate: "12/12/79", //new field to be added
} ,
Bar: {
id: 123,
startDate: "12/12/79",
}
我们需要在所有文档类型'Foo'中创建一个新属性'startDate',其值取自文档类型'Bar'。
所有'Foo'文档都包含Bar的“外键”(一个名为'BarId'的字段)。
除了以编程方式检索和更新所有实体之外,最简单的方法是什么? (Couchbase版本是3.0)
答案 0 :(得分:4)
I guess you mean some declarative solution resembling SQL UPDATE. Such a thing isn't available for CB 3, but since CB 4.1, N1QL has an UPDATE statement. Check http://developer.couchbase.com/documentation/server/4.1/n1ql/n1ql-language-reference/update.html.
答案 1 :(得分:4)
正如TAM所说,您可以使用Couchbase 4.1中N1QL
的UPDATE语句执行此操作...但您使用的是3.0。
在Couchbase 3.x中,你最好的是写:
view
,可让您获取Foo
类型的所有文件的ID Foo
doc Bar
doc Foo
个ID
Bar
doc Foo
内容并在db Foor
文档
答案 2 :(得分:1)
UPDATE
对我来说并不合适,因为我需要执行某种类型的"加入"两种文件类型之间。但看起来Couchbase的MERGE
声明正是我所需要的。
http://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/merge.html
我们将升级到4.1,看看它是如何发展的。