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

MongoDBがコレクションを作成するために`unique:true`を必要とするのはなぜですか?

    上記のシナリオをほぼ同じバージョンのmongooseとMongoDBで複製しようとしましたが、正常に機能し、firstNameの一意のプロパティなしでドキュメントが作成(および保存)されました。 スキーマのフィールド。オブジェクトがDBに保存されなかった理由は、一意のプロパティがないためではないと思います。

    また、uniqueプロパティなしでコレクションが作成されなかった理由は、コレクションにデータを挿入するまで、mongoose(またはMongoDB自体)がコレクションを作成しないためです。一意のプロパティを追加することにより、MongoDBはコレクション内にそのプロパティのインデックスドキュメントを作成する必要があり、その結果、コレクションにデータが追加されます。これが、一意のプロパティを追加した後にのみコレクションが作成されたように見える理由です。したがって、db.<collectionName>.find({} )何も返さない可能性があります、db.<collectionName>.getIndexes() あなたに何かを与えるでしょう。




    1. 要素名がピリオドで終わる場合、BsonSerializationExceptionが発生します

    2. Node.jsでMongooseをページ付けする方法は?

    3. LaravelまたはRedisでキューに入れられたジョブをキャンセルする方法

    4. マングースの個別の関数は、クエリで正規表現をサポートしていますか?