1

全て!

現在の安定版 (brew を使用) をアンインストールし、2.4 rc2 をインストールした後 (brew --devel にはそれがないため、brew ではありませんが、主にここで説明されているとおりです: http://shiftcommathree.com/articles/how-to-install- mongodb-on-os-x )、数回でさえ、次のインストールの前にmongodb関連のすべてを削除することに熱心すぎる可能性があるため、この状況に陥りました:

私が持っているノード プログラムは、データベースを使用し、正常に動作します (検索、挿入など)。しかし、問題は、mongo シェルが正しく機能しないことです。ドキュメントを挿入したり検索したりできません。例 (現在、私は 2.4 rc2 を持っていますが、状況は現在の安定版と同じでした):

$モンゴ
MongoDB シェル バージョン: 2.4.0-rc2
接続先:テスト
> データベースを表示
ローカル 0.078125GB
> mydb を使う
db mydb に切り替えました
> db.mydb.mycollection.insert = ({タイトル: 「おお、奇妙な問題」})
{ "タイトル" : "ああ、奇妙な問題" }
> コレクションを表示
> データベースを表示
ローカル 0.078125GB
mydb (空)

次に、Node プログラムを介して挿入を行い、次のようにします。

> データベースを表示
ローカル 0.078125GB
mydb 0.203125GB
> mydb を使う
db mydb に切り替えました
> コレクションを表示
私のコレクション
system.indexes
> db.mydb.mycollection.find()
>

繰り返しますが、私のNodeプログラムでは、「find」は必要なものを見つけます...

mongo シェルが機能しない理由はありますか?

フロデ

4

1 に答える 1

1

mydb.mycollectionデータベースで呼び出されたコレクションがありmydbます。それが本当にあなたが望むものである可能性は低いです。シェルからデータベースを参照する場合、データベース名を繰り返さずにオブジェクトをuse介してデータベースを参照できます。db

use mydb
# db is now implicitly the mydb database
# you no longer refer to it by name
db.mycollection.insert({"name" : "stacks overflowing"})

また、関数を呼び出していないことに注意してinsertください。コードは関数を新しいオブジェクトの値に設定しようとしていました。

于 2013-03-12T10:50:55.687 に答える