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