!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())

[Skip to main content](#__docusaurus_skipToContent_fallback)

LangChain v0.2 is coming soon! Preview the new docs [here](/v0.2/docs/introduction/).

[

![🦜️🔗 Langchain](/v0.1/img/brand/wordmark.png)![🦜️🔗 Langchain](/v0.1/img/brand/wordmark-dark.png)

](/v0.1/)[Docs](/v0.1/docs/get_started/introduction/)[Use cases](/v0.1/docs/use_cases/)[Integrations](/v0.1/docs/integrations/platforms/)[API Reference](https://api.js.langchain.com)

[More](#)

*   [People](/v0.1/docs/people/)
*   [Community](/v0.1/docs/community/)
*   [Tutorials](/v0.1/docs/additional_resources/tutorials/)
*   [Contributing](/v0.1/docs/contributing/)

[v0.1](#)

*   [v0.2](https://js.langchain.com/v0.2/docs/introduction)
*   [v0.1](/v0.1/docs/get_started/introduction/)

[🦜🔗](#)

*   [LangSmith](https://smith.langchain.com)
*   [LangSmith Docs](https://docs.smith.langchain.com)
*   [LangChain Hub](https://smith.langchain.com/hub)
*   [LangServe](https://github.com/langchain-ai/langserve)
*   [Python Docs](https://python.langchain.com/)

[Chat](https://chatjs.langchain.com)[](https://github.com/langchain-ai/langchainjs)

Search

*   [Providers](/v0.1/docs/integrations/platforms/)
    
    *   [Providers](/v0.1/docs/integrations/platforms/)
    *   [Anthropic](/v0.1/docs/integrations/platforms/anthropic/)
    *   [AWS](/v0.1/docs/integrations/platforms/aws/)
    *   [Google](/v0.1/docs/integrations/platforms/google/)
    *   [Microsoft](/v0.1/docs/integrations/platforms/microsoft/)
    *   [OpenAI](/v0.1/docs/integrations/platforms/openai/)
*   [Components](/v0.1/docs/integrations/components/)
    
    *   [LLMs](/v0.1/docs/integrations/llms/)
        
    *   [Chat models](/v0.1/docs/integrations/chat/)
        
    *   [Document loaders](/v0.1/docs/integrations/document_loaders/)
        
    *   [Document transformers](/v0.1/docs/integrations/document_transformers/)
        
    *   [Document compressors](/v0.1/docs/integrations/document_compressors/)
        
    *   [Text embedding models](/v0.1/docs/integrations/text_embedding/)
        
    *   [Vector stores](/v0.1/docs/integrations/vectorstores/)
        
        *   [Memory](/v0.1/docs/integrations/vectorstores/memory/)
        *   [AnalyticDB](/v0.1/docs/integrations/vectorstores/analyticdb/)
        *   [Astra DB](/v0.1/docs/integrations/vectorstores/astradb/)
        *   [Azure AI Search](/v0.1/docs/integrations/vectorstores/azure_aisearch/)
        *   [Azure Cosmos DB](/v0.1/docs/integrations/vectorstores/azure_cosmosdb/)
        *   [Cassandra](/v0.1/docs/integrations/vectorstores/cassandra/)
        *   [Chroma](/v0.1/docs/integrations/vectorstores/chroma/)
        *   [ClickHouse](/v0.1/docs/integrations/vectorstores/clickhouse/)
        *   [CloseVector](/v0.1/docs/integrations/vectorstores/closevector/)
        *   [Cloudflare Vectorize](/v0.1/docs/integrations/vectorstores/cloudflare_vectorize/)
        *   [Convex](/v0.1/docs/integrations/vectorstores/convex/)
        *   [Couchbase](/v0.1/docs/integrations/vectorstores/couchbase/)
        *   [Elasticsearch](/v0.1/docs/integrations/vectorstores/elasticsearch/)
        *   [Faiss](/v0.1/docs/integrations/vectorstores/faiss/)
        *   [Google Vertex AI Matching Engine](/v0.1/docs/integrations/vectorstores/googlevertexai/)
        *   [SAP HANA Cloud Vector Engine](/v0.1/docs/integrations/vectorstores/hanavector/)
        *   [HNSWLib](/v0.1/docs/integrations/vectorstores/hnswlib/)
        *   [LanceDB](/v0.1/docs/integrations/vectorstores/lancedb/)
        *   [Milvus](/v0.1/docs/integrations/vectorstores/milvus/)
        *   [Momento Vector Index (MVI)](/v0.1/docs/integrations/vectorstores/momento_vector_index/)
        *   [MongoDB Atlas](/v0.1/docs/integrations/vectorstores/mongodb_atlas/)
        *   [MyScale](/v0.1/docs/integrations/vectorstores/myscale/)
        *   [Neo4j Vector Index](/v0.1/docs/integrations/vectorstores/neo4jvector/)
        *   [Neon Postgres](/v0.1/docs/integrations/vectorstores/neon/)
        *   [OpenSearch](/v0.1/docs/integrations/vectorstores/opensearch/)
        *   [PGVector](/v0.1/docs/integrations/vectorstores/pgvector/)
        *   [Pinecone](/v0.1/docs/integrations/vectorstores/pinecone/)
        *   [Prisma](/v0.1/docs/integrations/vectorstores/prisma/)
        *   [Qdrant](/v0.1/docs/integrations/vectorstores/qdrant/)
        *   [Redis](/v0.1/docs/integrations/vectorstores/redis/)
        *   [Rockset](/v0.1/docs/integrations/vectorstores/rockset/)
        *   [SingleStore](/v0.1/docs/integrations/vectorstores/singlestore/)
        *   [Supabase](/v0.1/docs/integrations/vectorstores/supabase/)
        *   [Tigris](/v0.1/docs/integrations/vectorstores/tigris/)
        *   [Turbopuffer](/v0.1/docs/integrations/vectorstores/turbopuffer/)
        *   [TypeORM](/v0.1/docs/integrations/vectorstores/typeorm/)
        *   [Typesense](/v0.1/docs/integrations/vectorstores/typesense/)
        *   [Upstash Vector](/v0.1/docs/integrations/vectorstores/upstash/)
        *   [USearch](/v0.1/docs/integrations/vectorstores/usearch/)
        *   [Vectara](/v0.1/docs/integrations/vectorstores/vectara/)
        *   [Vercel Postgres](/v0.1/docs/integrations/vectorstores/vercel_postgres/)
        *   [Voy](/v0.1/docs/integrations/vectorstores/voy/)
        *   [Weaviate](/v0.1/docs/integrations/vectorstores/weaviate/)
        *   [Xata](/v0.1/docs/integrations/vectorstores/xata/)
        *   [Zep](/v0.1/docs/integrations/vectorstores/zep/)
    *   [Retrievers](/v0.1/docs/integrations/retrievers/)
        
    *   [Tools](/v0.1/docs/integrations/tools/)
        
    *   [Agents and toolkits](/v0.1/docs/integrations/toolkits/)
        
    *   [Chat Memory](/v0.1/docs/integrations/chat_memory/)
        
    *   [Stores](/v0.1/docs/integrations/stores/)
        

*   [](/v0.1/)
*   [Components](/v0.1/docs/integrations/components/)
*   [Vector stores](/v0.1/docs/integrations/vectorstores/)
*   Neon Postgres

On this page

Neon Postgres
=============

Neon is a fully managed serverless PostgreSQL database. It separates storage and compute to offer features such as instant branching and automatic scaling.

With the `pgvector` extension, Neon provides a vector store that can be used with LangChain.js to store and query embeddings.

Setup[​](#setup "Direct link to Setup")
---------------------------------------

### Select a Neon project[​](#select-a-neon-project "Direct link to Select a Neon project")

If you do not have a Neon account, sign up for one at [Neon](https://neon.tech). After logging into the Neon Console, proceed to the [Projects](https://console.neon.tech/app/projects) section and select an existing project or create a new one.

Your Neon project comes with a ready-to-use Postgres database named `neondb` that you can use to store embeddings. Navigate to the Connection Details section to find your database connection string. It should look similar to this:

    postgres://alex:AbC123dEf@ep-cool-darkness-123456.us-east-2.aws.neon.tech/dbname?sslmode=require

Keep your connection string handy for later use.

### Application code[​](#application-code "Direct link to Application code")

To work with Neon Postgres, you need to install the `@neondatabase/serverless` package which provides a JavaScript/TypeScript driver to connect to the database.

*   npm
*   Yarn
*   pnpm

    npm install @neondatabase/serverless

    yarn add @neondatabase/serverless

    pnpm add @neondatabase/serverless

tip

See [this section for general instructions on installing integration packages](/v0.1/docs/get_started/installation/#installing-integration-packages).

*   npm
*   Yarn
*   pnpm

    npm install @langchain/community

    yarn add @langchain/community

    pnpm add @langchain/community

To initialize a `NeonPostgres` vectorstore, you need to provide your Neon database connection string. You can use the connection string we fetched above directly, or store it as an environment variable and use it in your code.

    const vectorStore = await NeonPostgres.initialize(embeddings, {  connectionString: NEON_POSTGRES_CONNECTION_STRING,});

Usage[​](#usage "Direct link to Usage")
---------------------------------------

    import { OpenAIEmbeddings } from "@langchain/openai";import { NeonPostgres } from "@langchain/community/vectorstores/neon";// Initialize an embeddings instanceconst embeddings = new OpenAIEmbeddings({  apiKey: process.env.OPENAI_API_KEY,  dimensions: 256,  model: "text-embedding-3-small",});// Initialize a NeonPostgres instance to store embedding vectorsconst vectorStore = await NeonPostgres.initialize(embeddings, {  connectionString: process.env.DATABASE_URL as string,});// You can add documents to the store, strings in the `pageContent` field will be embedded// and stored in the databaseconst documents = [  { pageContent: "Hello world", metadata: { topic: "greeting" } },  { pageContent: "Bye bye", metadata: { topic: "greeting" } },  {    pageContent: "Mitochondria is the powerhouse of the cell",    metadata: { topic: "science" },  },];const idsInserted = await vectorStore.addDocuments(documents);// You can now query the store for similar documents to the input queryconst resultOne = await vectorStore.similaritySearch("hola", 1);console.log(resultOne);/*[  Document {    pageContent: 'Hello world',    metadata: { topic: 'greeting' }  }]*/// You can also filter by metadataconst resultTwo = await vectorStore.similaritySearch("Irrelevant query", 2, {  topic: "science",});console.log(resultTwo);/*[  Document {    pageContent: 'Mitochondria is the powerhouse of the cell',    metadata: { topic: 'science' }  }]*/// Metadata filtering with IN-filters works as wellconst resultsThree = await vectorStore.similaritySearch("Irrelevant query", 2, {  topic: { in: ["greeting"] },});console.log(resultsThree);/*[  Document { pageContent: 'Bye bye', metadata: { topic: 'greeting' } },  Document {    pageContent: 'Hello world',    metadata: { topic: 'greeting' }  }]*/// Upserting is supported as wellawait vectorStore.addDocuments(  [    {      pageContent: "ATP is the powerhouse of the cell",      metadata: { topic: "science" },    },  ],  { ids: [idsInserted[2]] });const resultsFour = await vectorStore.similaritySearch(  "powerhouse of the cell",  1);console.log(resultsFour);/*[  Document {    pageContent: 'ATP is the powerhouse of the cell',    metadata: { topic: 'science' }  }]*/

#### API Reference:

*   [OpenAIEmbeddings](https://api.js.langchain.com/classes/langchain_openai.OpenAIEmbeddings.html) from `@langchain/openai`
*   [NeonPostgres](https://api.js.langchain.com/classes/langchain_community_vectorstores_neon.NeonPostgres.html) from `@langchain/community/vectorstores/neon`

* * *

#### Help us out by providing feedback on this documentation page:

[

Previous

Neo4j Vector Index

](/v0.1/docs/integrations/vectorstores/neo4jvector/)[

Next

OpenSearch

](/v0.1/docs/integrations/vectorstores/opensearch/)

*   [Setup](#setup)
    *   [Select a Neon project](#select-a-neon-project)
    *   [Application code](#application-code)
*   [Usage](#usage)

Community

*   [Discord](https://discord.gg/cU2adEyC7w)
*   [Twitter](https://twitter.com/LangChainAI)

GitHub

*   [Python](https://github.com/langchain-ai/langchain)
*   [JS/TS](https://github.com/langchain-ai/langchainjs)

More

*   [Homepage](https://langchain.com)
*   [Blog](https://blog.langchain.dev)

Copyright © 2024 LangChain, Inc.