Check out v4 of the Fauna CLI
v4 of the Fauna CLI is now in beta. The new version introduces enhancements to the developer experience, including an improved authentication workflow. To get started, check out the CLI v4 quick start. |
document.replaceData()
Learn: Documents |
---|
Replace a collection document using an object that may contain metadata fields.
Description
Replaces all fields in an collection document with fields from a provided data
object. Fields not present in the data object, excluding the id
, coll
, ts
,
and data
metadata fields, are removed.
This method differs from document.replace()
in
how it handles reserved fields. See Reserved fields.
Reserved fields
You can’t use this method to insert or edit the following metadata fields:
-
id
-
coll
-
ts
-
data
If the provided data object contains field names that conflict with these
metadata fields, the method safely
nests values for fields with reserved names in the data
field. See
Examples.
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
data |
true |
Fields for the collection document. Fields not present in the object,
excluding the If the object contains field names that conflict with these
metadata fields, the method safely
nests values for fields with reserved names in the |
Return value
Type | Description |
---|---|
<Document> |
Collection document with replaced fields. A document’s data type is taken from its collection’s name. For example,
|
Examples
Given the following document:
{
id: "777",
coll: Product,
ts: Time("2099-04-10T16:50:12.850Z"),
name: "limes",
description: "Conventional, 16 oz bag",
price: 2_99,
stock: 30,
category: Category("789")
}
Call replaceData()
with id
and coll
fields in the replacement document
object. These fields have the same name as reserved
metadata fields.
Product.byId("777")?.replaceData({
id: "12345",
coll: "Product",
name: "limes",
description: "2 ct",
price: 99,
stock: 50,
category: Category.byId("789")
})
{
id: "777",
coll: Product,
ts: Time("2099-04-10T17:54:37.670Z"),
name: "limes",
description: "2 ct",
price: 99,
stock: 50,
category: Category("789"),
data: {
coll: "Product",
id: "12345"
}
}
Rather than return an error, replaceData()
treats any field with a reserved
name as a document field and nests it in the document’s data
property.
Is this article helpful?
Tell Fauna how the article can be improved:
Visit Fauna's forums
or email docs@fauna.com
Thank you for your feedback!