Update mongodb

This commit is contained in:
sunkaixuan
2025-07-18 14:11:05 +08:00
parent 8abd4a068d
commit d46968dcc8
8 changed files with 14 additions and 10 deletions

View File

@@ -21,7 +21,7 @@ namespace MongoDb.Ado.data
{
collection.InsertOne(doc);
}
var objectId = doc["_id"].AsObjectId.ToString();
var objectId = doc["_id"].IsObjectId ? doc["_id"].AsObjectId.ToString() : doc["_id"].ToString();
context.ids = new string[] { objectId };
return 1;
}

View File

@@ -23,7 +23,7 @@ namespace MongoDb.Ado.data
{
collection.InsertMany(documents);
}
var objectIds = documents.Select(it=>it["_id"].AsObjectId.ToString()).ToArray();
var objectIds = documents.Select(it=>it["_id"].IsObjectId? it["_id"].AsObjectId.ToString(): it["_id"]?.ToString()).ToArray();
context.ids = objectIds;
return documents.Count;
}

View File

@@ -24,7 +24,7 @@ namespace MongoDb.Ado.data
{
await collection.InsertOneAsync(doc, null, token);
}
var objectId = doc["_id"].AsObjectId.ToString();
var objectId = doc["_id"].IsObjectId? doc["_id"].AsObjectId.ToString() : doc["_id"].ToString();
context.ids = new string[] { objectId };
return 1;
}

View File

@@ -26,7 +26,7 @@ namespace MongoDb.Ado.data
{
await collection.InsertManyAsync(documents, null, token);
}
var objectIds = documents.Select(it => it["_id"].AsObjectId.ToString()).ToArray();
var objectIds = documents.Select(it => it["_id"].IsObjectId ? it["_id"].AsObjectId.ToString() : it["_id"]?.ToString()).ToArray();
context.ids = objectIds;
return documents.Count;
}

View File

@@ -100,7 +100,11 @@ namespace SqlSugar.MongoDb
{
if (entityColumnInfo?.IsPrimarykey==true||entityColumnInfo?.DataType==nameof(ObjectId))
{
rightValue=ObjectId.Parse(rightValue?.ToString());
var str = rightValue?.ToString();
if (UtilMethods.IsValidObjectId(str))
{
rightValue = ObjectId.Parse(str);
}
}
return rightValue;
}

View File

@@ -628,7 +628,7 @@ namespace SqlSugar.MongoDb
}
else
{
bsonArray.Add(BsonValue.Create(value));
bsonArray.Add(BsonValue.Create(val));
}
}
else

View File

@@ -201,9 +201,9 @@ namespace SqlSugar.MongoDb
// 自动推断类型,如 string、int、bool、DateTime、ObjectId 等
if (col.IsJson == true)
{
doc[col.DbColumnName] =UtilMethods.ParseJsonObject(col.Value);
doc[col.DbColumnName] = UtilMethods.ParseJsonObject(col.Value);
}
else if (col.Value!=null&&col.DataType == nameof(ObjectId))
else if (col.Value != null && col.DataType == nameof(ObjectId))
{
doc[col.DbColumnName] = UtilMethods.MyCreate(ObjectId.Parse(col.Value?.ToString()));
}

View File

@@ -595,7 +595,7 @@ namespace SqlSugar.MongoDb
internal static BsonValue MyCreate(object value, DbColumnInfo col)
{
if (value != null&&IsObjectColumn(col))
if (value != null&&IsObjectColumn(col)&& value is string s&&IsValidObjectId(s))
{
return MyCreate(ObjectId.Parse(value?.ToString()));
}