1

grails の MongoDB ID について質問があります。ドメインクラスで文字列IDを使用しましたが、ドメインクラスで文字列IDを作成しますが、これは問題ありません。しかし、手動で mongodb にエントリを挿入すると (db.Things.insert() を実行)、新しいエントリの ObjectId (文字列ではない) が作成されます。この問題をどのように解決できるのだろうかと思います。

ありがとう!

4

2 に答える 2

0

最初に新しい ObjectId を作成し、それを mongoDb に挿入すると、「_id」プロパティに ObjectId.str を渡すことができることがわかりました。その後、問題は解決されました。分野。

mongo javascript スクリプトのコード スニペットは次のとおりです。

conn = new Mongo();
db = conn.getDB("dbName");

db.user.find().forEach( function(userDoc) {

    // Create a new object Id
    objectId = new ObjectId();

    db.userRole.insert({
        _id: objectId.str,  // Before we insert, convert it as a String
        role: "51437d742cd1d9e80a3f0644",
        user: userDoc._id
    });

});
于 2013-03-18T14:59:37.737 に答える