2

mongo シェルから mongo スクリプトを作成しようとしていますが、小さな問題があります。コード自体を説明します。

var shops = db.Shop.find({})

function printShopUrl(data) {
    var name, url;
    for (var i = 0; i < data.length(); i++) {
        name = data[i].name;
        url = db.Instance.findOne({name:name}).url;
        print(url);
    }
}

printShopUrl(shops)

したがって、私が今やろうとしているのは、単に URL を出力することだけですが、このクエリを実行するとエラーが発生します。

TypeError: db.Instance.findOne({name:name}) has no properties (shell):1

私が間違っていることは何ですか?

4

1 に答える 1

1

主な問題: 以下は値を返さない可能性がありますdb.Instance.findOne({name:name})。したがって、 を追加する.urlと、null から値を取得しようとしています。

次のことを試してください。

var obj = db.Instance.findOne({name:name});
if(obj && obj.url) { print(obj.url); }

nameフィールド ( )についても同様の問題が発生する可能性がありますname = data[i].name

于 2011-06-12T05:39:16.130 に答える