0

次のような複数の基準を満たすドキュメントを返すために find メソッドを使用しようとしています。

db.issues.find({ 'title.name': name, 'title.year': year, 'title.publisher': publisher }, function(err, issues) { ...

結果として、空の配列が返されます。

mongodb コンソールで同じクエリを直接実行すると、期待どおりの結果が得られます。

mongojs では、次のように属性を 1 つだけ指定すると、結果を取得できます。

db.issues.find({ 'title.name': name }, function(err, issues) { ...

では、複数の属性を使用して検索を実行するにはどうすればよいでしょうか。別の方法を使用する必要がありますか?

UPDATED 2/2/2014 7:56 問題のスキーマは次のとおりです。

{
    title: { name: 'Some title name', year: 1999, publisher: 'Some publisher' },
    number: "122", 
    variant: null,
    print: "1",
    year: "1999",
    certification: { type: "Some certification", grade: 10 },
    url: "http://www.someurl.com",
    sales: []
}
4

1 に答える 1

1

mongojs がクエリを処理する方法に違いはありません。これは、mongo シェルの動作を (ある程度) 模倣することを目的としているためです。

あなたの基準が実際に何かを返すと確信していますか?現状では、そこに問題がある可能性があります。それでもこれを診断できない場合は、得られると予想される結果とスキーマの一部を編集として投稿してください。数字が文字列ではないこと、およびその逆であることを var で確認することを忘れないでください。

于 2014-02-03T00:55:38.170 に答える