MongoDB的主键是ObjectId类型,id = models.ObjectIdField(db_column='_id', primary_key=True)
djongo定义的字段类型有以下几种:
位置:\djongo\base.py
data_types = {
'AutoField': 'int',
'BigAutoField': 'long',
'BinaryField': 'binData',
'BooleanField': 'bool',
'CharField': 'string',
'CommaSeparatedIntegerField': 'string',
'DateField': 'date',
'DateTimeField': 'date',
'DecimalField': 'decimal',
'DurationField': 'long',
'FileField': 'string',
'FilePathField': 'string',
'FloatField': 'double',
'IntegerField': 'int',
'BigIntegerField': 'long',
'IPAddressField': 'string',
'GenericIPAddressField': 'string',
'NullBooleanField': 'bool',
'OneToOneField': 'int',
'PositiveIntegerField': 'long',
'PositiveSmallIntegerField': 'int',
'SlugField': 'string',
'SmallIntegerField': 'int',
'TextField': 'string',
'TimeField': 'date',
'UUIDField': 'string',
'GenericObjectIdField': 'objectId',
'ObjectIdField': 'objectId',
'EmbeddedField': 'object',
'ArrayField': 'array'
}
models.py
# Create your models here.
import mongoengine
from djongo import models
# 此处继承的是 mongoengine.Document
class OrgInfo(models.Model):
id = models.ObjectIdField(db_column='_id', max_length=255, primary_key=True)
oid = models.IntegerField(db_column='oId')
class Meta:
# abstract = True
verbose_name = '数据'
verbose_name_plural = verbose_name
db_table = 'f_org'
pymongo连接mongdb
import pymongo
from bson import ObjectId
myclient = pymongo.MongoClient("mongodb://账户:密码@10.0.0.1/数据库名字")
mydb = myclient["数据库名字"]
mycol = mydb["集合名字"]
x = mycol.find({'_id': {'$eq': ObjectId('63ad48211729d292ffd970fc')}})
for i in x:
print(i)
print(x)