Parts 和 Products 集合之间的引用
`var lookup1 = new BsonDocument
{
{
"$lookup",
new BsonDocument
{
{ "from", "Parts" },
{ "localField", "order_number" },
{ "foreignField", "productNumber" },
{ "as", "partsId" }
}
},
};
var lookup2 = new BsonDocument
{
{
"$project",
new BsonDocument
{
{ "partsId", "$partsId._id" },
{ "id", 1 }
}
}
};
var pipeline = new[] { lookup1, lookup2 };
var result = connectDbProducts().Aggregate<Products>(pipeline).ToList();
foreach (var item in result)
{
if (item.partsId.Count != 0)
{
var filterID = Builders<Products>.Filter.Eq(x => x._id, item._id);
var setTableTop = Builders<Products>.Update.Set(x => x.partsId, item.partsId);
connectDbProducts().UpdateOne(filterID, setTableTop);
}
else
{
var filterID = Builders<Products>.Filter.Eq(x => x._id, item._id);
var setTableTop = Builders<Products>.Update.Unset(x => x.partsId);
connectDbProducts().UpdateOne(filterID, setTableTop);
}
}`
产品类
public class Products
{
public object _id { get; set; }
public string electricity_based_on { get; set; }
public double? full_price { get; set; }
public DateTime manufacturing_date { get; set; }
public string order_code { get; set; }
public string order_comment_names { get; set; }
public string order_name { get; set; }
public string order_number { get; set; }
public double? order_quantity { get; set; }
public double? unit_price { get; set; }
[BsonIgnoreIfNull]
public string user_name { get; set; }
[BsonIgnoreIfNull]
public DateTime user_checkTime { get; set; }
[BsonIgnoreIfNull]
public object order_comments { get; set; }
[BsonIgnoreIfNull]
public string tabletop_letter { get; set; }
[BsonIgnoreIfNull]
public string sub_3_4 { get; set; }
[BsonIgnoreIfNull]
public List<string> partsId { get; set; }
}
连接到数据库
public static IMongoCollection<Products> connectDbProducts()
{
try
{
MongoClient dbClient = new MongoClient(Properties.Resource1.mongoDB);
var db = dbClient.GetDatabase("Manufacturing");
var collection = db.GetCollection<Products>("Products");
return collection;
}
catch (Exception toMongoDBParts)
{
WriteLogFile("--MongoDB connection to Parts collection--", toMongoDBParts.StackTrace, toMongoDBParts.Message);
throw;
}
}