sql >> データベース >  >> NoSQL >> MongoDB

既存のMongoDB文字列属性をBSON::ObjectIdに変換します

    これはどういう意味ですか? (ObjectIdの16進数である文字列があり、それをObjectIdに変換したい)

    > db.foo.insert({bar:new ObjectId().str});
    > db.foo.insert({bar:new ObjectId().str});
    > db.foo.insert({bar:new ObjectId().str});
    > db.foo.find();
    { "_id" : ObjectId("4f95e00d9060633ce7fbab94"), "bar" : "4f95e00d9060633ce7fbab93" }
    { "_id" : ObjectId("4f95e0119060633ce7fbab96"), "bar" : "4f95e0119060633ce7fbab95" }
    { "_id" : ObjectId("4f95e0119060633ce7fbab98"), "bar" : "4f95e0119060633ce7fbab97" }
    > db.foo.find().forEach(function(doc) { db.foo.update({_id:doc._id},{$set:{bar:new ObjectId(doc.bar)}}); });
    > db.foo.find();
    { "_id" : ObjectId("4f95e00d9060633ce7fbab94"), "bar" : ObjectId("4f95e00d9060633ce7fbab93") }
    { "_id" : ObjectId("4f95e0119060633ce7fbab96"), "bar" : ObjectId("4f95e0119060633ce7fbab95") }
    { "_id" : ObjectId("4f95e0119060633ce7fbab98"), "bar" : ObjectId("4f95e0119060633ce7fbab97") }
    

    それともこれはあなたが意味することですか? (文字列がありますが、それを吹き飛ばして、その場所に新しいObjectIdを作成します)

    > db.foo.insert({bar:"some string id"});
    > db.foo.insert({bar:"some string id2"});
    > db.foo.insert({bar:"some string id3"});
    > db.foo.find();
    { "_id" : ObjectId("4f95e1779060633ce7fbaba5"), "bar" : "some string id" }
    { "_id" : ObjectId("4f95e1799060633ce7fbaba6"), "bar" : "some string id2" }
    { "_id" : ObjectId("4f95e17b9060633ce7fbaba7"), "bar" : "some string id3" }
    > db.foo.find().forEach(function(doc) { db.foo.update({_id:doc._id},{$set:{bar:new ObjectId()}}); });
    > db.foo.find();
    { "_id" : ObjectId("4f95e1779060633ce7fbaba5"), "bar" : ObjectId("4f95e1819060633ce7fbaba8") }
    { "_id" : ObjectId("4f95e1799060633ce7fbaba6"), "bar" : ObjectId("4f95e1819060633ce7fbaba9") }
    { "_id" : ObjectId("4f95e17b9060633ce7fbaba7"), "bar" : ObjectId("4f95e1819060633ce7fbabaa") }
    


    1. .NETでMongoDBを部分的に更新するためのRESTAPIのパッチ

    2. Nodejsの構成の最大旧スペースサイズ

    3. GraphQLでのマングースの入力フィールドの処理

    4. MongoDB C#ドライバーは接続を解放せず、エラーが発生します