我想知道我正在尝试更新集合用户文档的一个或两个属性,这些属性包括
{
"id": "591fcd33f8bb03598ec34f70",
"name": null,
"username": "abc",
"emailId": "abc@gmail.com",
"interestedFlag": 1,
"mobNo": "xxxxxxxxxx",
"userActiveFlag": 1,
"address": "1",
"city": "abx",
"state": "up",
"profileImage": [
{}
],
"joinedOn": null,
"modifiedOn": null,
"lastVisited": null,
"tempPassword": "1234567",
"sex": null,
"metaDataMap": {},
"dob": null
}
假设我只想更新用户名,如果我正在使用以下命令运行save,那么:
userRepository.save(userEntity);
它将我的用户更改为:
{
"id": "591fcd33f8bb03598ec34f70",
"name": "New Name",
"username": null,
"emailId": null,
"interestedFlag": null,
"mobNo": null,
"userActiveFlag": null,
"address": null,
"city": null,
"state": null,
"profileImage": null,
"joinedOn": null,
"modifiedOn": null,
"lastVisited": null,
"tempPassword": null,
"sex": null,
"metaDataMap": {},
"dob": null
}
但理想情况下,我只想更改我的用户名。
我的用户控制器是:
@PATCH
@Path("/changepassword/{userId}")
@Consumes("application/json")
public User changeName(@PathParam("userId") String userId, final User user) {
userService.changePassword(user);
return user;
}
我的服务Impl是:
@Override
public User changeName(User user){
User userEntity = userRepository.findById(user.getId());
userEntity.setName(user.getName());
return userRepository.save(userEntity);
}
我的mongoRepository是:
public interface UserRepository extends MongoRepository<User, String>
请帮助我用Spring data mongodb以正确的方式实现这一点。
正如人们在评论中所写,您应该为此创建一个自定义更新方法。
首先为自定义方法创建接口:
interface UserRepositoryCustom {
void updateName(String userId, String newName);
}
然后将其添加到用户存储库:
public interface UserRepository extends MongoRepository<User, String>, UserRepositoryCustom
及其实施:
public class UserRepositoryImpl implements UserRepositoryCustom {
private final MongoTemplate mongoTemplate;
public UserRepositoryImpl(@Autowired final MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
@Override
public void updateName(final String id, final String newName) {
mongoTemplate
.updateFirst(Query.query(Criteria.where(Entity.Meta.ID).is(id)),
Update.update("name", newName), User.class);
}
}
此外,您应该始终只更新要更新的字段。保存
方法应该很少使用。
本文向大家介绍SpringDataMongoDB多文档事务的实现,包括了SpringDataMongoDB多文档事务的实现的使用技巧和注意事项,需要的朋友参考一下 一、安装MongoDB4.0.3(××) 1.1、官方安装文档 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 1.2、tar.gz包下载地址 h
主要内容:1. 使用fauxton更新(编辑)文档,2. CouchDB使用cURL工具更新文档在本篇文章中,我们来学习如何编辑/修改 CouchDB 数据库中的文档。编辑/修改 CouchDB 数据库中的文档有两种方法,下面分别来看看如何操作。 1. 使用fauxton更新(编辑)文档 打开Fauxton url:http://127.0.0.1:5984/_utils 在创建文档后,还可以更新/更改/编辑文档。首先打数据库概览,里边有文档列表,如下表所示 - 点击想要修改的文档,例如点击
Beautiful Soup的强项是文档树的搜索,但同时也可以方便的修改文档树 修改tag的名称和属性 在 Attributes 的章节中已经介绍过这个功能,但是再看一遍也无妨. 重命名一个tag,改变属性的值,添加或删除属性: soup = BeautifulSoup('<b>Extremely bold</b>') tag = soup.b tag.name = "blockquote" t
DOM 修改是创建“实时”页面的关键。 在这里,我们将会看到如何“即时”创建新元素并修改现有页面内容。 例子:展示一条消息 让我们使用一个示例进行演示。我们将在页面上添加一条比 alert 更好看的消息。 它的外观如下: <style> .alert { padding: 15px; border: 1px solid #d6e9c6; border-radius: 4px; co
Beautiful Soup的强项是文档树的搜索,但同时也可以方便的修改文档树 修改tag的名称和属性 在 Attributes 的章节中已经介绍过这个功能,但是再看一遍也无妨. 重命名一个tag,改变属性的值,添加或删除属性: soup = BeautifulSoup('<b class="boldest">Extremely bold</b>') tag = soup.b tag.name
本文向大家介绍MongoDB修改、删除文档的域属性实例,包括了MongoDB修改、删除文档的域属性实例的使用技巧和注意事项,需要的朋友参考一下 由于本博使用的博客程序是边开发边使用的,所以开发过程中动态创建了某些现在不需要的属性 MongoDB 是无 Schema 的,不像关系数据库那样列属性定义在表而非记录中,MongoDB 的集合中的每个文档可以拥有各自不同的域属性。 MongoDB 中使用