joy*_*joy 3 mongodb node.js mongodb-query mongoskin
我正在使用基于 Nodejs 的 mongoskin 驱动程序进行 mongo 数据库操作。我想更新我的文档,但不想更新一些字段。以下是更多详细信息。
请求添加:
{
"name": "Theme Name",
"description": "Theme Description",
"createdByUserId": "53651221b25521601a5c9530",
}
Run Code Online (Sandbox Code Playgroud)
请求更新:
{
"_id":"53555ef203dabf282b750a81"
"name": "Theme Name",
"categoryId": "53555ef203dabf282b750a81",
"description": "Theme Description",
"createdByUserId": "53651221b25521601a5c9530",
"updatedByUserId": "5675561b25521601a5c9530",
"dateCreated": ISODate("2014-05-19T19:47:26.603Z"),
"dateUpdated": ISODate("2014-05-19T19:49:28.203Z"),
}
Run Code Online (Sandbox Code Playgroud)
我想忽略客户端发送的以下字段。1.按用户 ID 创建 2.创建日期
目前我在更新操作中采用以下方法: 1. 读取给定_id的集合 2. 从数据库中读取上述两个字段并更新请求,然后执行数据库更新操作
寻求清洁方法的帮助。
您的更新请求实际上执行以下操作:它将文档中的所有内容替换为请求提供的值(当然“_id”除外,它是不可变的)。您想要的是 mongosphere 中所谓的“部分更新”。请查看$set 运算符。所以你会做的是这样的:
db.yourcollection.update({"_id":"53555ef203dabf282b750a81"},
{$set:
{
"categoryId":"53555ef203dabf282b750a81",
"updatedByUserId":"5675561b25521601a5c9530",
"dateUpdated":ISODate("2014-05-19T19:49:28.203Z")
}
}
)
Run Code Online (Sandbox Code Playgroud)
据我所知,现在有一种方法可以将完整的文档发送到 mongo[s|d] 并告诉它仅跳过某些字段。
| 归档时间: |
|
| 查看次数: |
5141 次 |
| 最近记录: |