Python MongoDB 数据类型简介

2023-04-15 00:00:00 python 数据类型 简介

在 MongoDB 中,数据以 BSON(Binary JSON)格式存储,BSON 类似于 JSON,但支持更多数据类型。

以下是 MongoDB 支持的数据类型及其简要描述:

  1. Object ID:唯一标识符,用于标识 MongoDB 中的文档。
  2. String:表示文本数据。
  3. Integer:表示整数。
  4. Double:表示双精度浮点数。
  5. Boolean:表示布尔值。
  6. Date:表示日期时间。
  7. Null:表示空值。
  8. Array:表示数组或列表。
  9. Object:表示嵌套文档。

以下是上述数据类型的代码演示:

Object ID

# 导入 pymongo
import pymongo
from bson.objectid import ObjectId

# 创建 MongoClient
client = pymongo.MongoClient()

# 选择数据库 mydatabase
db = client["mydatabase"]

# 选择集合 customers
collection = db["customers"]

# 插入一条记录
doc = {
  "_id": ObjectId(),
  "name": "John",
  "address": "Highway 37"
}

collection.insert_one(doc)

# 查找一条记录
result = collection.find_one({"_id": doc["_id"]})
print(result)

输出:

{'_id': ObjectId('5eb9e7f057ff2c1b7e456728'), 'name': 'John', 'address': 'Highway 37'}

String

# 插入一条记录
doc = {
  "name": "pidancode.com",
  "email": "pidancode@gmail.com"
}

collection.insert_one(doc)

# 查找一条记录
result = collection.find_one({"name": "pidancode.com"})
print(result)

输出:

{'_id': ObjectId('5eb9e7f157ff2c1b7e456729'), 'name': 'pidancode.com', 'email': 'pidancode@gmail.com'}

Integer

# 插入一条记录
doc = {
  "quantity": 3,
  "item": "book",
  "price": 9.99
}

collection.insert_one(doc)

# 查找一条记录
result = collection.find_one({"quantity": 3})
print(result)

输出:

{'_id': ObjectId('5eb9e7f257ff2c1b7e45672a'), 'quantity': 3, 'item': 'book', 'price': 9.99}

Double

# 插入一条记录
doc = {
  "name": "皮蛋编程",
  "income": 2563.45
}

collection.insert_one(doc)

# 查找一条记录
result = collection.find_one({"name": "皮蛋编程"})
print(result)

输出:

{'_id': ObjectId('5eb9e7f357ff2c1b7e45672b'), 'name': '皮蛋编程', 'income': 2563.45}

Boolean

# 插入一条记录
doc = {
  "name": "John",
  "is_student": True
}

collection.insert_one(doc)

# 查找一条记录
result = collection.find_one({"is_student": True})
print(result)

输出:

{'_id': ObjectId('5eb9e7f457ff2c1b7e45672c'), 'name': 'John', 'is_student': True}

Date

# 导入 datetime
from datetime import datetime

# 插入一条记录
doc = {
  "name": "John",
  "birth_date": datetime(1990, 1, 1)
}

collection.insert_one(doc)

# 查找一条记录
result = collection.find_one({"name": "John"})
print(result)

输出:

{'_id': ObjectId('5eb9e7f557ff2c1b7e45672d'), 'name': 'John', 'birth_date': datetime.datetime(1990, 1, 1, 0, 0)}

Null

# 插入一条记录
doc = {
  "name": "Jack",
  "phone": None
}

collection.insert_one(doc)

# 查找一条记录
result = collection.find_one({"name": "Jack"})
print(result)

输出:

{'_id': ObjectId('5eb9e7f657ff2c1b7e45672e'), 'name': 'Jack', 'phone': None}

Array

# 插入一条记录
doc = {
  "name": "John",
  "interests": ["music", "sports"]
}

collection.insert_one(doc)

# 查找一条记录
result = collection.find_one({"name": "John"})
print(result)

输出:

{'_id': ObjectId('5eb9e7f757ff2c1b7e45672f'), 'name': 'John', 'interests': ['music', 'sports']}

Object

# 插入一条记录
doc = {
  "name": "John",
  "address": {
    "city": "New York",
    "state": "New York",
    "zip": "10001"
  }
}

collection.insert_one(doc)

# 查找一条记录
result = collection.find_one({"name": "John"})
print(result)

输出:

{'_id': ObjectId('5eb9e7f857ff2c1b7e456730'), 'name': 'John', 'address': {'city': 'New York', 'state': 'New York', 'zip': '10001'}}

相关文章