私はMongoDBを初めて使用しています。現在、私は現在何が異常であるかを調べています。だから、 'allcodes' コレクションに5つの新しいコードを挿入するMongoDB - コレクションの途中で挿入物を調べる
var codes = [
"abc1001",
"abc1002",
"abc1003",
"abc1004",
"abc1005"];
var codesCount = codes.length;
for (var i = 0; codesCount > i; i++) {
var insertCode = codes[i];
var result = db.allcodes.findOne({ code: insertCode });
if (result == null) {
db.allcodes.insert({ code: insertCode });
}
}
:
はMongoDBの2.6.1で実行される以下のスクリプトを考えてみましょう。今では、スクリプト実行前にコレクションに約1000の他のコード(ドキュメント)がありました。環境の1つ(MongoDBのコピー)では、上記のスクリプトはコードの1つを挿入し、コレクションの途中では「abc1001」と言い、最後には他のすべてのコードを期待通りに挿入します。これを説明するために、ここに挿入した後、コレクションからすべての文書を引いた結果の抜粋です:
.
.
.
abc500
abc501
abc1001
abc502
abc503
.
.
.
abc1002
abc1003
abc1004
abc1005
だから、一つのコードが末尾にコレクションの真ん中、そして他人に挿入してしまいました。今度は、このスクリプトを再実行すると、コレクションの最後に5つのコードがすべて挿入されるため、この問題を再現することはできません。私の質問は、文書がコレクションの途中に挿入された理由は何か、それは他のすべての試みのように、終わりに向かってではないのですか?
コメントをいただきありがとうございます。
どのような問題がありますか?ドキュメントの注文は、[.sort()](https://docs.mongodb.org/manual/reference/method/cursor.sort/) –
を使用した場合にのみ保証されます。何が間違っているのかを説明します:[ソート順が指定されていないときにMongoDBがレコードをソートする方法は?](http://stackoverflow.com/questions/11599069/how-does-mongodb-sort-records-when-no-sort -order-is-specified) – Bonanza