37

私は製品リストを持っていると言います。新しい製品を追加するときは、次のようなものを使用して保存します

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

問題は、これが行われた後、ユーザーを製品のあるページにリダイレクトしたいということです。だから私は言うためにリダイレクトする必要があります/products/<ObjectID>

ただし、データベースに手動でクエリを実行し、すべて同じフィールドなどを持つドキュメントを探すことなく、すぐにObjectIDを取得する方法はわかりません。

もっと簡単な方法はありますか?(また、docこの場合、何らかの理由でnullを返します)

4

7 に答える 7

67

このInsertメソッドは、モデルの BSON ID として宣言されたプロパティを自動的に設定します。

次のように宣言すると...

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

...次に、Idオブジェクトをコレクションに挿入した後、フィールドにはオブジェクトのデフォルトの (新しい、一意の) BSON ID が含まれます。

coll.Insert(obj);
// obj.Id is now the BSON ID of the object
于 2011-01-03T08:11:46.293 に答える
19

オブジェクトを mongodb に挿入すると、mongo はオブジェクトを内部 ID で更新します。

だからもし

data = {
  title: "Howdy"
}

次に、データオブジェクトをデータベースに挿入すると

db.collection('collectionName', function(err, collection) {
  collection.insert(data);
  console.log(data._id); // <- The mongodb id is now set on the item
});
于 2012-12-14T06:22:42.633 に答える