繁体   English   中英

MongoDB 相同的查询适用于 Shell,但不能在 nodejs 中使用 mongoose

[英]MongoDB same query works on Shell but doesn't work using mongoose in nodejs

let mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/MovieDataset').
    then(() => console.log('Connected to MongoDB')).
    catch((error) => console.log(error));
    
let dbschema = new mongoose.Schema({});
const Movie = mongoose.model('Movie', dbschema, 'film');

async function infos() {
    //1
    const Totalmovies = await Movie.find({}).countDocuments();
    console.log(Totalmovies);
    //2
    const Info = await Movie.find( { country:"USA", genre:"crime"} );
    console.log(Info)
}
infos()

这里第一个查询返回 88 是正确的。 但第二个查询返回数据库中的所有 88 部电影信息。 我在 MongoDB compass shell 中运行了相同的查询,它只返回了匹配的文档。

这是 Shell 命令返回的结果

这是在 nodejs 中使用 mongoose 重新调整的结果片段:

{
    title: 'Le grand bleu',
    year: 1988,
    genre: 'drama',
    summary: "Jacques Mayol et Enzo Molinari se connaissent depuis l'enfance. Tous deux experts en apnée, s'affrontent continuellement pour obtenir le record du monde de plongée. Toujours en rivalité, les deux hommes descendent de plus en plus profond, au risque de leurs vies. Le film est ressorti en janvier 89 en version longue d'une durée de 2h40. ",
    country: 'FR',
    director: {
      _id: 'artist:111',
      last_name: 'Besson',
      first_name: 'Luc',
      birth_date: '1959'
    },
    actors: [ [Object], [Object], [Object] ]
  },
  {
    title: 'Spider-Man',
    year: 2002,
    genre: 'Action',
    summary: "Orphelin, Peter Parker est élevé par sa tante May et son oncle Ben dans le quartier Queens de New York. Tout en poursuivant ses études à l'université, il trouve un emploi de photographe au journal Daily Bugle. Il partage son appartement avec Harry Osborn, son meilleur ami, et rêve de séduire la belle Mary Jane.Cependant, après avoir été mordu par une araignée génétiquement modifiée, Peter voit son agilité et sa force s'accroître et se découvre des pouvoirs surnaturels. Devenu Spider-Man, il décide d'utiliser ses nouvelles capacités au service du bien.Au même moment, le père de Harry, le richissime industriel Norman Osborn, est victime d'un accident chimique qui a démesurément augmenté ses facultés intellectuelles et sa force, mais l'a rendu fou. Il est devenu le Bouffon Vert, une créature démoniaque qui menace la ville. Entre lui et Spider-Man, une lutte sans merci s'engage.",       
    country: 'USA',
    director: {
      _id: 'artist:187',
      last_name: 'Raimi',
      first_name: 'Sam',
      birth_date: '1959'
    },
    actors: [ [Object], [Object], [Object], [Object], [Object] ]
  },
  {
    title: 'King of New York',
    year: 1990,
    genre: 'drama',
    summary: "L'histoire d'un gangster au grand coeur mais aux méthodes définitives, surlast_namemé par le presse The King of New York et qui rêve de fonder un hôpital, confronté a des policiers opiniâtres qui ont juré de l'abattre...",
    country: 'USA',
    director: {
      _id: 'artist:122',
      last_name: 'Ferrara',
      first_name: 'Abel',
      birth_date: '1951'
    },
    actors: [ [Object], [Object], [Object], [Object], [Object], [Object] ]
  },
  {
    title: 'The Matrix reloaded',
    year: 2003,
    genre: 'Science-fiction',
    summary: "Neo apprend à mieux contrôler ses dons naturels, alors même que Sion s'apprête à tomber sous l'assaut de l'Armée des Machines. D'ici quelques heures, 250 000 Sentinelles programmées pour anéantir notre espèce envahiront la dernière enclave humaine de la Terre.Mais Morpheus galvanise les citoyens de Sion en leur rappelant la Parole de l'Oracle : il 
est encore temps pour l'Elu d'arrêter la guerre contre les Machines. Tous les espoirs se reportent dès lors sur Neo. Au long de sa périlleuse plongée au sein de la Matrix et de sa propre destinée, ce dernier sera confronté à une résistance croissante, une vérité encore plus aveuglante, un choix encore plus douloureux que tout ce qu'il avait jamais imaginé.",    
    country: 'USA',
    director: {
      _id: 'artist:61',
      last_name: 'Wachowski',
      first_name: 'Andy',
      birth_date: '1967'
    },
    actors: [ [Object], [Object], [Object], [Object] ]
  },
  {
    title: 'The Matrix Revolutions',
    year: 2003,
    genre: 'Science-fiction',
    summary: "La longue quête de liberté des rebelles culmine en une bataille finale explosive. Tandis que l'armée des Machines sème la désolation sur Zion, ses citoyens organisent une défense acharnée. Mais pourront-ils retenir les nuées implacables des Sentinelles en attendant que Neo s'approprie l'ensemble de ses pouvoirs et mette fin à la guerre ?L'agent Smith est quant à lui parvenu à prendre possession de l'esprit de Bane, l'un des membres de l'équipage de l'aéroglisseur. De plus en plus puissant, il est désormais incontrôlable et n'obéit plus aux Machines : il menace de détruire leur empire ainsi que le monde réel et la Matrice... ",
    country: 'USA',
    director: {
      _id: 'artist:135',
      last_name: 'Phoenix',
      first_name: 'Joaquin',
      birth_date: '1974'
    },
    actors: [ [Object], [Object], [Object], [Object], [Object] ]
  },
  {
    title: 'De bruit et de fureur',
    year: 1988,
    genre: 'drama',
    summary: "L'histoire de Bruno, enfant attardé des banlieues et des H.L.M., plongé dans la violence de son milieu, et dont la vie va se consumer comme une étoile filante.",       
    country: 'FR',
    director: {
      _id: 'artist:138',
      last_name: 'Chabrol',
      first_name: 'Claude',
      birth_date: '1930'
    },
    actors: [ [Object], [Object], [Object] ]
  },
  {
    title: 'Usual suspects',
    year: 1995,
    genre: 'Thriller',
    summary: "Une légende du crime contraint cinq malfrats à aller s'aquitter d'une tâche très périlleuse. Ceux qui survivent pourront se partager un butin de 90 millions de dollars.",
    country: 'USA',
    director: {
      _id: 'artist:142',
      last_name: 'Dern',
      first_name: 'Laura',
      birth_date: '1967'
    },
    actors: [ [Object], [Object], [Object], [Object], [Object] ]
  },
  {
    title: 'Bad Lieutenant',
    year: 1992,
    genre: 'drama',
    summary: "La descente aux enfers d'un flic pourri qui enquete sur le viol d'une jolie religieuse.",
    country: 'USA',
    director: {
      _id: 'artist:122',
      last_name: 'Ferrara',
      first_name: 'Abel',
      birth_date: '1951'
    },
    actors: [ [Object] ]
  },

同样在这里,电影数据集是一个预先存在的数据集,以 JSON 格式导入。

这里,数据库名称:MovieDataset

藏品名称:电影

无论我运行什么查询,它总是返回所有文档,即使是错误的查询也不会返回 null。 我的查询有什么问题? 我的模型或架构有问题吗?

我想这是一个拼写错误,这里是工作链接: Mongo playground

您只需删除 Info 中的 { 之一

 const Info = await Movie.find( { country:"USA", genre:"crime"} );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM