MongoDB中$type和null类型

MongoDB中的数据类型如下图:
MongoDB中的数据类型
插入数据:

db.user.insert([{name:"张三", sex: "man"}, {name:"李四", sex:null}, {name:"王五"}])

查询sex为null的用户:

db.user.find({sex:null})
{ "_id" : ObjectId("5dcc1a794552bedf4414fe77"), "name" : "李四", "sex" : null }
{ "_id" : ObjectId("5dcc1a794552bedf4414fe78"), "name" : "王五" }
#如果直接使用{sex:null}查询的话,不存在sex的文档也会被查询出来

# 使用$type来查询sex值为null的文档
db.user.find({sex:{$type:10}})
{ "_id" : ObjectId("5dcc1a794552bedf4414fe77"), "name" : "李四", "sex" : null }
# 或
db.user.find({$and:[{sex:null},{sex:{$exists:true}}]})
{ "_id" : ObjectId("5dcc1a794552bedf4414fe77"), "name" : "李四", "sex" : null }

#使用$exists过滤存在属性sex的文档
db.user.find({sex:{$exists:true}})
{ "_id" : ObjectId("5dcc1a794552bedf4414fe76"), "name" : "张三", "sex" : "man" }
{ "_id" : ObjectId("5dcc1a794552bedf4414fe77"), "name" : "李四", "sex" : null }

个人理解,null和不存在的类似与JS中null和undefined。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot整合MongoDB非常简单。下面是一个简单的示例来说明如何在Spring Boot项目使用MongoDB。 首先,您需要将MongoDB的依赖项添加到您的项目。在您的pom.xml文件,添加以下依赖项: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> ``` 接下来,您需要在application.properties或application.yml文件配置MongoDB的连接信息。例如,如果您的MongoDB服务器在本地运行,并使用默认端口27017,则可以使用以下配置: ```properties spring.data.mongodb.host=localhost spring.data.mongodb.port=27017 spring.data.mongodb.database=mydb ``` 然后,您可以创建一个实体类来映射MongoDB的文档。例如,假设您有一个名为Book的实体类: ```java import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; @Document(collection = "books") public class Book { @Id private String id; private String name; private String type; private String description; // 省略构造方法、Getter和Setter } ``` 接下来,您可以创建一个Repository接口来定义对MongoDB的操作。例如,假设您想要实现一些基本的CRUD操作: ```java import org.springframework.data.mongodb.repository.MongoRepository; public interface BookRepository extends MongoRepository<Book, String> { // 省略其他自定义查询方法 } ``` 现在,您可以在您的服务类或控制器使用BookRepository来操作MongoDB。例如,您可以注入BookRepository,并调用相应的方法来添加、删除、更新和查询Book对象。 ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class BookService { @Autowired private BookRepository bookRepository; public void addBook(Book book) { bookRepository.save(book); } public void deleteBook(String id) { bookRepository.deleteById(id); } public void updateBook(Book book) { bookRepository.save(book); } public Book getBookById(String id) { return bookRepository.findById(id).orElse(null); } public List<Book> getAllBooks() { return bookRepository.findAll(); } } ``` 这样,您就可以通过调用BookService的方法来进行相应的操作。 总结一下,整合Spring Boot和MongoDB需要添加依赖项,配置连接信息,创建实体类和Repository接口,并在服务类或控制器使用Repository来操作MongoDB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值