| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- package mo
 
- import (
 
- 	"go.mongodb.org/mongo-driver/bson"
 
- )
 
- type convert struct{}
 
- func (c convert) M(d D) M {
 
- 	m, _ := c.ME(d)
 
- 	return m
 
- }
 
- func (c convert) D(m M) D {
 
- 	d, _ := c.DE(m)
 
- 	return d
 
- }
 
- func (c convert) ME(d D) (M, error) {
 
- 	b, err := bson.Marshal(d)
 
- 	if err != nil {
 
- 		return M{}, err
 
- 	}
 
- 	var m M
 
- 	if err = bson.Unmarshal(b, &m); err != nil {
 
- 		return M{}, err
 
- 	}
 
- 	return m, nil
 
- }
 
- func (c convert) DE(m M) (D, error) {
 
- 	b, err := bson.Marshal(m)
 
- 	if err != nil {
 
- 		return D{}, err
 
- 	}
 
- 	var d D
 
- 	if err = bson.Unmarshal(b, &d); err != nil {
 
- 		return D{}, err
 
- 	}
 
- 	return d, nil
 
- }
 
- var (
 
- 	// Convert 将 D 转换为 M, 或将 M 转换为 D
 
- 	// MongoDB Go Driver 2.0 不支持直接从 D 转换为 M. 所以, 用户应该使用 bson.Marshal 将 D 编组为 BSON, 并使用 bson.Unmarshal 将其解编为 M.
 
- 	Convert = convert{}
 
- )
 
 
  |