Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
372 views
in Technique[技术] by (71.8m points)

c# - Get _id of an inserted document in MongoDB?

say I have a product listing. When I add a new product I save it using something like

var doc=products.Insert<ProductPDO>(p);

The problem is that I want after this is done to redirect the user to the page with the product. So I need to redirect to say /products/<ObjectID>

However, I see no way of getting the ObjectID right afterwards without manually querying the database and look for a document with all the same fields and such.

Is there an easier way? (also, doc in this instance returns null for some reason)

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The Insert method automatically sets the property that is declared as the BSON ID of the model.

If declared as follows...

[BsonId]
public ObjectId Id { get; set; }

... then the Id field will contain the default (new, unique) BSON ID of the object after inserting the object into a collection:

coll.Insert(obj);
// obj.Id is now the BSON ID of the object

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...